node模块开发
ndoe.js中模块化开发规范
node.js中规定一个js文件就是一个模块,模块内部定义的变量和函数默认情况下外部无法得到
模块内部可以使用exports对象进行成员导出,使用require方法进行导入其他模块
模块化导入
解释:此处的exports可以当成用来封装导出数据的对象
//在模块内部定义变量
let version =1.0;
//在模块内部定义方法
const sayHi=name=>`您好,${name}`;
//向模块外部导出数据
exports.version=version;
exports.sayHi=sayHi;
另一种模块化导入对象
module.exports对象,其导入方法与exports相同
原理:exports对象与module.exports对象指向的地址是相同的
但是,当exports与module.exports对象的指向不同时,以module.exports为准
node系统模块
fs文件操作
写入文件内容
语法:const fs=require(‘fs’);
读取文件内容
fs.readFile(‘文件路径/文件名’[,‘文件编码’],callback);
在api文档中带有[ ]的就是可选参数,callback表示回调函数
/ 1.通过模块的名字fs对模块进行引用
const fs = require('fs');
// 2.通过模块内部的readFile读取文件内容
fs.readFile('./01.helloworld.js', 'utf8', (err, doc) => {
// 如果文件读取出错err 是一个对象 包含错误信息
// 如果文件读取正确 err是 null
// doc 是文件读取的结果
console.log(err);
console.log(doc);
});
写入文件内容
语法:fs.writeFile(‘文件路径或文件名称’,‘数据’,calllback);
const fs = require('fs');
//当要写入的文件并不存在时,自动新建文案
fs.writeFile('./demo.txt', '即将要写入的内容', err => {
if (err != null) {
console.log(err);
return;
}
console.log('文件内容写入成功');//输出“文件内容写入成功”,demo.txt文件成功添加“即将要写入的内容”
})
path路径操作
路径拼接操作语法
path.join(‘路径’,‘路径’,…)
const path = require('path');
const finalPath = path.join('public', 'uploads','avatar');
console.log(finalPath);//输出: public/uploads/avatar
相对路径与绝对路径
- 大多数情况下应使用绝对路径,因为相对路径有的时候相对的是命令行工具的当前工作目录
- 在读取文件或设置文件路径的时候都会选择绝对路径
- 使用__dirname获取当前文件所在的绝对路径
fs.readFile(path.join(__dirname, '01.helloworld.js'), 'utf8', (err, doc) => {
console.log(err)
console.log(doc)
});
第三方模块
第三方模块的下载和卸载
- 下载:npm install 模块名称
- 卸载: npm uninstall package模块名称
全局暗转与本地安装 - 命令行工具:全局安装
- 库文件:本地安装
第三方模块nodemon
nodemon是一个命令行工具用以辅助项目开发
解决在node.js中每次修改文件都要在命令行中重新执行该文件的问题
使用步骤
- 使用npm install nodemon -g下载它
-g代表在全局进行安装,使用任何项目的时候都可以使用这个工具 - 在命令行工具中用nodemon命令代替node命令执行文件
终止操作使用CTRL+C,此时出现提示是否终止,再一次CTRL+C则返回命令行当前工作目录并且终止操作
第三方模块nrm
nrm:npm下载地址切换的工具
切换为国内的下载地址速度较快,一般为taobao的下载地址
使用步骤
- npm insatall nrm -g下载该工具
- 查询下载地址列表nrm ls
- 切换npm下载地址nrm use下载地址名称