(514) 769-2319

同步读取事件 readFileSync(文件名,[option(编码格式)]);

创建readMe.txt文件内容为 温州是个好地方

var fs=require('fs');/调用FS模块
var readMe=fs.readFileSync('readMe.txt','utf8');/同步读取readMe.txt
console.log(readMe);/温州是个好地方

同步写入事件 writeFileSync(文件名,内容,[option(编码格式,默认为utf8)] );

var fs=require('fs');/调用FS模块
fs.writeFileSync('writeMe.txt',readMe);/writeMe.txt已存在则覆盖当前内容,否则创建writeMe.txt文件

异步读取事件readFile(文件名,[option(编码格式)],回调函数(err报错,data异步读取到的内容));

var fs=require('fs');/调用FS模块
fs.reFile('readMe.txt','utf8',(err,data)=>{
   if(err)throw err;/若报错,则抛出错误
   console.log(data);
})

异步写入事件writeFile(文件名,data[写入内容],[option(编码格式,默认为utf8)] ,回调函数(err报错);

var fs=require('fs');/调用FS模块
const data=('温州是个特别好地方');
fs.writeFile('writeMe3.txt',data,(err)=>{/writeMe.txt已存在则覆盖当前内容,否则创建writeMe.txt文件
   if(err) throw err;
})

node.js笔记

调用其他文件模块

hello.js为其他文件模块

var hello=function(){
    console.log('hello node.js');
}
module.exports=hello;

在main.js中调用hello模块,使用require方法,传入引入模块的相对路径,因为main.js和hello在同一个目录,所以我们用了当前目录.

var stuff=require('./hello.js');
stuff();/hello node.js

如果hello.js中有多个方法需要调用

var counter=function(arr){
    return '一共有' + arr.length +'个元素在数组中';
}
var adder=function(a,b){
    return `您需要计算的两个值的和为:${a+b}`;
}
var pi=3.142;
/*
console.log(counter(['Henry','Bucky','Emily']));*/
module.exports={
    counter:counter,
    adder:adder,
    pi:pi
}

在main.js中调用

var stuff=require('./stuff.js');
console.log(stuff.counter(['我是数组1','我是数组2']));/一共有2个元素在数组中

node.js中有一个events模块,该模块只提供了一个对象events.EventEmitter.他的核心就是事件触发与事件监听功能封装.

var events=require('events');
/创建eventEmitter;
var myEmitter=new events.EventEmitter();

myEmitter.on('someEvent',function(m){
        console.log(m);
});
/触发事件
myEmitter.emit('someEvent','实现事件并传递此参数到注册事件的回调函数中');/实现事件并传递此参数到注册事件的回调函数中