nodejs学习笔记

2016-10-28  本文已影响66人  亲爱的孟良

模块

var foo = requeire('./foo);
exports.hello = function(){
console.log('hello world);
}#导出了一个公有方法
module.exports = function(){
    console.log('hello world);
}#模块默认导出对象被替换为一个函数

var cat = require('/home/user/lib/cat');
var cat = require('/home/user/lib/index');
#也就是可以少写一部分,使得看似加载了一个包,其实还是加载了一个入口模块而已
{
    "name":"cat",
    "main":"./lib/main.js"
}#这样加载的时候就可以只写包名,然后根据package的路径去找入口模块,注意存放的位置
假设包路径'./user/cat'
package路径'./user/cat/package.json'
如果只是修复bug->Z位
如果新增了功能,向下兼容->Y位
如果大的变动并且向下不兼容->X为

EventEmitter

node.js所有的异步I/O操作在完成时都会发送一个事件到时间队列;node.js很多对象都会分发事件

var events = require('events');
var eventEmitter = new events.EventEmitter();
//用法
var event = new eventEmitter();类实例化
//注册一个some_event的监听器
event.on('some_event',function(){
    console.log('some event');
})
setTimeout(funtion(){
//发射某个事件
    event.emit('some_event');
})

文件操作

其余的方法看文档!


Buffer

其余的方法看文档


Stream(数据流)(fs模块)

var fs = require('fs');
var data = "";
//创建可读流
var readerStream = fs.createReadStream('some.txt');
//设置编码utf8
readerStream.setEncoding('UTF8')
//处理流事件
readerStream.on('data',function(chunk){
    data+=chunk;
})
//创建一个可以写入的流
var writeStream = fs.createWirteStream('some.txt');
//使用utf8编码写入数据
writeSteam.write(data,'UTF8');
//标记文件末尾
writeStream.end()
//处理事件流
writeStream.on('finish',function(){
    console.log('write end');
})
var fs = require('fs');
//创建可读流
var readerStream = fs.createReadStream('some.txt');
//创建可写流
var writeStream = fs.createWriteStream('another.txt');
//管道读写操作
readerStream.pipe(writeStream);

上一篇 下一篇

猜你喜欢

热点阅读