注意点:
var a = 10; //是在函数内部的局部变量 而直接 a=10 是全局的 /* 在node中有一个全局对象 global,它的作用和网页中window类似 在全局中创建的变量都会作为global的属性保存 在全局中创建的函数都会作为global的方法保存 当node在执行模块中的代码时,它会首先在代码的最顶部,添加如下代码 function (exports, require, module, __filename, __dirname) { 在代码的最底部,添加如下代码 } 实际上模块中的代码都是包装在一个函数中执行的,并且在函数执行时,同时传递进了5个实参 exports - 该对象用来将变量或函数暴露到外部 require - 函数,用来引入外部的模块 module - module代表的是当前模块本身 - exports就是module的属性 - 既可以使用 exports 导出,也可以使用module.exports导出 __filename C:\Users\lilichao\WebstormProjects\class0705\01.node\04.module.js - 当前模块的完整路径 __dirname C:\Users\lilichao\WebstormProjects\class0705\01.node - 当前模块所在文件夹的完整路径 * */exports 和 module.exports区别:
/* exports 和 module.exports - 通过exports只能使用.的方式来向外暴露内部变量 exports.xxx = xxx - 而module.exports既可以通过.的形式,也可以直接赋值 module.exports.xxx = xxxx module.exports = {} */cnpm是淘宝镜像的npm
/* 通过npm下载的包都放到node_modules文件夹中 我们通过npm下载的包,直接通过包名引入即可 node在使用模块名字来引入模块时,它会首先在当前目录的node_modules中寻找是否含有该模块 如果有则直接使用,如果没有则去上一级目录的node_modules中寻找 如果有则直接使用,如果没有则再去上一级目录寻找,直到找到为止 直到找到磁盘的根目录,如果依然没有,则报错 */方式二:简单文件方式
fs.readFile("an.jpg" , function (err , data) { if(!err){ //console.log(data); //将data写入到文件中 fs.writeFile("C:/Users/lilichao/Desktop/hello.jpg",data,function(err){ if(!err){ console.log("文件写入成功"); } } ); } });方式一:管道
/* 流式文件读取也适用于一些比较大的文件,可以分多次将文件读取到内存中 */ var fs = require("fs"); //创建一个可读流 var rs = fs.createReadStream("C:/Users/lilichao/Desktop/笔记.mp3"); //创建一个可写流 var ws = fs.createWriteStream("b.mp3"); //pipe()可以将可读流中的内容,直接输出到可写流中 rs.pipe(ws);方式二:
/* 流式文件读取也适用于一些比较大的文件,可以分多次将文件读取到内存中 */ var fs = require("fs"); //创建一个可读流 var rs = fs.createReadStream("C:/Users/lilichao/Desktop/笔记.mp3"); //创建一个可写流 var ws = fs.createWriteStream("a.mp3"); //监听流的开启和关闭 rs.once("open",function () { console.log("可读流打开了~~"); }); rs.once("close",function () { console.log("可读流关闭了~~"); //数据读取完毕,关闭可写流 ws.end(); //注意end方法是等管中水流完再关闭,close方法是直接关闭 }); ws.once("open",function () { console.log("可写流打开了~~"); }); ws.once("close",function () { console.log("可写流关闭了~~"); }); //如果要读取一个可读流中的数据,必须要为可读流绑定一个data事件,data事件绑定完毕,它会自动开始读取数据 rs.on("data", function (data) { //console.log(data); //将读取到的数据写入到可写流中 ws.write(data); });