Node基础(模块篇)
·1)当你下载完node后 如若要运行 node 文件名 //输出内容 ‘文件名最好不要以node.js命名不然会打不开文件 其次最好不要使用中文’
2)众所周知 node.js不是一门语言,而是一个开发平台,是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
我的理解就是模块化开发
那么如何引进 对应的模块?
**require()**进行引入
其模块(通俗的理解模块就是js文件) 我们大可以分为三种
- 核心模块 //可以理解为node自带的模块
- 第三方模块 //可以理解为需要npm yarn…(后方介绍)安装的模块
- 自定义模块 //可以理解为我们自己定义的js后缀文件
那么先来简单的介绍几个学习node基础必要掌握的几个核心模块
模块 | 引入 |
---|---|
fs | require(‘fs’) |
http | require(‘http’) |
path | require(‘path’) |
fs
读取文件
fs.readFile('文件路径',/*回调函数*/function(error,data){
if(error){
throw error//如果读取文件失败 则停止运行 返回错误信息
}
console.log(data.tostring()//禁止转换函数 tostring()
})
那么有读肯定就有写
fs.write.File('文件路径','文件内容','回调函数function(error/*只接受一个参数,错误对象*/){
}')
http
使用**http.createServer()**方法创建一个web服务器
let server=http.createServer()//创建一个web服务器
//为其绑定request事件 也就是服务器被触发时
server.on('request',function(request,response){
//其回调函数有两个参数
//request:获取请求信息的 如请求路径 request.url
//response:发送响应信息的 如response.write('写入内容')//可以写入多次但是当写入后必须使用end()结尾。否则会一直等待
//如果我们要向页面书写内容则可以使用 response.end('内容')//书写内容并结束响应
response.end('收到客户的请求了')
})
//最后我们要为其服务器绑定一个端口号,并启动服务器
server.listen(3000,function(){
//此回调函数可以写也可以不写 服务器启动时要做些什么
console.log('服务器启动成功啦,可以使用http://127.0.0.1:3000 访问 ')
})
path
path的职责就是专门用来处理路径的
我们知道 路径分为相对路径和绝对路径,并且系统有window、Linux…他们有的路径拼接符并不是一致的 而在我们读取文件时如
fs.readFile('./data/data.js',function(error,data){
})
上方我们读取的是一个相对路径的文件 当然知识相对于我们是在当前文件运行
那如果我在c、d、e、f盘进行运行呢?//这是一个值得让人思考的问题
我来告诉你答案 会报错 会读取不到!!!
因为相对路径只是相对于你在哪个路径读取,他并不是全能小天才,那么此时我们就需要用到__dirname 与 path这个核心模块了
__dirname:获取当前文件的绝对路径
而此时我们就可以这样来写代码
fs.readFile(path.join(__dirname,'data','data.js'),function(error,data){
})
//path的join方法会自动帮我们拼接好在当前系统下的路径
很好如果你读到了这里 那么你的基础就可以算是过关了哦
接下来提起node 我们就不得不说起一个特别特别重要的东西
npm npm npm重要的事情说三遍(当然还有yarn)!
·npm init//生成packge.join文件 npm init -y 跳过向导 快速生成
·npm install//一次性把package.json文件中的dependencies选项中的依赖项全部安装(简写:npm i)
·npm install 包名//只下载 包名文件(简写npm i 包名)
·npm install --save 包名//下载并保存依赖项(简写:npm i -S )注S大写
·npm uninstall 包名//只删除包名,依赖项会保存(简写:npm un 包名)
·npm uninstall --save 包名//删除同时把依赖项也删除(简写:npm un -S包名)
·npm --help//查看使用帮助
·npm 命令 --help//查看指定命令的的帮助
安装cnpm淘宝镜像
--global表示安装到全局,而非当前目录不可省略
·npm install --global cnpm
配置淘宝cnpm默认
·npm config set registry https://registry.npm.taobao.org
查看npm配置信息 npm config list
自定义模块
自定义模块重点在于导出 何为导出?
module.exports = exports
但注意导出的是 module.exports 并不是exports 两者都可以导出对象但是exports只是module.exports的一个别名
在我们需要导出文件时我们只需要将
module.exports = {
SuccessData,
ErrorData
}
或者
exports.name=name
而模块引入的话我们就可以使用我们的 require() 来进行引入
注我们如果要进行引入的话 就要引入其相对路径
像这样!