NodeJS知识点总结
一、NodeJS中的中间件是什么?
中间件是指从发送Http到响应结束的过程中处理细节的方法(如:记录日志、ip过滤、查询字符串、请求体解析、Cookie处理、权限验证、参数验证、异常处理等)。
参考博文:https://www.cnblogs.com/xiaosongJiang/p/10854467.html
二、nodeJS中流的总结
Node.js,Stream有四种流类型:
Readable–可读操作。
Writable–可写操作。
Duplex–可读可写操作。
Transform–操作被写入数据,然后读出结果。
- 可读流的例子包括:
- HTTP responses, on the client
- HTTP requests, on the server
- fs read streams
- zlib streams
- crypto streams
- TCP sockets
- child process stdout and stderr
- process.stdin
以fs为例创建一个可读流:
fs.createReadStream(path,[options]);
path — 要读取文件的路径
options — 一个数组对象包含:
flags:指定用什么模式打开,“w”代表写,“r”代表读。
endoding:编码格式“utf8","ascii","base64"三种格式,默认“utf8”。
highWaterMark:水位线
autoClose:为true时(默认行为),对错误或结束的文件描述符将自动关闭,为 false时,文件描述符将不会被关闭,即使他们报错了。
start:开始读取的字节位置
end:结束读取的字节位置。
创建一个1.txt文件,内容:asdfasd
同一目录下创建一个js文件
let fs = require("fs");
let path = require("path");
let readable = fs.createReadStream(path.join(__dirname,"./1.txt"),{
flags: 'r',
encoding: 'utf8',
autoClose: true,
mode: "0666",
});
readable.on('data', function(chunk){
console.log( chunk.length, chunk);
});
//7 'asdfasd'复制代码
可写流的例子包括了:
HTTP requests, on the client
HTTP responses, on the server
fs write streams
zlib streams
crypto streams
TCP sockets
child process stdin
process.stdout, process.stderr