文章目录
nodeJs笔记
vscode
换行–LF,与Linux兼容
CommonJS规范
模块加载机制。每个js都是一个模块,它们内部各自使用的变量名和函数名都互不冲突。
一个模块要对外部暴露变量,可以用module.exports=variable;
一个模块要引用其他模块暴露的变量,用var ref=require('module_name');
深入了解模块原理
大量的全局变量会导致变量名冲突问题,Node.js在加载了js模块后,会把代码包装一下,进行闭包,将模块内代码用一个匿名函数包起来,使得原来的全局变量变为局部变量。
module.exports和exports
一般使用module.exports。只有暴露变量是个对象时,exports才能正常输出。故一般用第一种。
**原因:**module.exports与exports指的是同一个对象。load函数返回的是module.exports。
基本模块
global
唯一的全局对象
process进程
NodeJS进程。
fs模块
node内置的文件系统模块,负责读写文件。
读取文件
异步读取文件
//err--null,data--String;err--错误对象,data--undefined
fs.readFile('./web-practice/node/sample.txt','utf-8',function(err,data){
if(err){
console.log(err);
}else{
console.log(data);
// String转Buffer对象;
var buf=Buffer.from(data,'utf-8');
console.log(buf);
// Buffer对象转为String是:data.toString('utf-8');
}
})
同步读取文件
// 同步读取文件:比起异步,函数多了个Sync后缀,且不接收回调函数,函数直接返回结果。
// 同步读取文件发生错误,则需要用try..catch捕获错误。
try