nodejs模块
1. http模块
2. 断言(assert)
const assert = require('assert')
assert(条件,'断言')
例:function(a,b){
assert(arguments.length==2,'参数必须是两个')//如果传进来的参数不是2个 就会提示参数必须是两个。断言:即断定这里参数必须是两个。
};
3. 二进制(Buffer)//切记二进制不可toString(),否则图片等类型会出错。
文件(FileSystem)
const fs = require('fs');
fs.readFile('1.txt',(err,data)=>{
console.log(err)//文件路径与回调函数
//读取成功之后返回的就是Buffer数据(二进制数据).
});//异步操作,对应有sync版本readFileSync();
fs.writeFile('3.txt','erqwreqwere',err=>{//写到3.txt,内容为第二个参数。默认是覆盖,如果要追加使用appendFile
if(err){}else{}
})
4. C++ Addons 用C语言写插件,性能及其好。
5. child Processes\Cluster\Process 相互配合可以使用JS处理多进程。
6. Crypto 处理加密、签名//距离md5加密
const crypot = require('crypot');
let obj = crypot.createHash('md5');
obj.update('123456');
console.log(obj.digest('hex'));
7. OS(操作系统)
8. path()//用来获取各种路径名(dirname)、文件名(basename)、后缀名(extname)等。__dirname,node全局变量用来获取当前文件的绝对路径
9. Events 事件队列
数据到达事件,文件加载完成事件等。
const Event = require('event').EventEmitter;
let ev = new Event();
//1.监听
ev.on('msg',function(a,b,c){//msg 起名随意
consloe.log('msg事件触发',a,b,c)
})
//2.发送
ev.emit('msg',12,5,8);
10. querystring //url?问号后的数据,由qs模块进行处理,不过通常大家都使用URL模块。
const url = require('url');
url.oarse(url地址);
console.log(url)
11. 网络
TCP协议 使用net模块
UDP协议 使用Datagram模块
12. DNS 解析域名,Domain 处理域名相关事项
const dns = require('dns');
dns.resolve('baidu.com',(err,res)=>{
if(err){
}else{
console.log(res);
}
})
13. Stream 流操作
连续数据都是流操作,
14. TSL 安全传输层、SSL 安全套接层,处理安全加密
15. ZLIB 压缩操作使用
扩展
深复制与浅复制
浅复制之后 原数组与新数组指向的地址是同一个
深复制之后 是完全独立的两个数组
NODE模块化开发
模块化开发==组件化开发
将单独的功能封装成单独的模块,按需引用
使用CMD、AMD规范区别:(转2018-4-10笔记扩展)
AMD 是 RequireJS 在推广过程中对模块定义的规范化产出。
CMD 是 SeaJS 在推广过程中对模块定义的规范化产出。
AMD是依赖提前
CMD是依赖就近
node模块化,需要把模块放在node_modeles文件夹下才可以在引用的时候不加./,
因为node有系统模块,引用模块时加./代表引用自己的模块,不加代表引用系统模块,而把自己的模块放到node_modeles文件夹下,即可实现不加./引用自己的模块
ES6模块化(凉了,名存实亡,所有浏览器都不支持)
输出
export{x,x,x}
引入
import mod from 'xxx.js'
网友评论