nodejs模块/深复制与浅复制/模块化开发

2019-07-09  本文已影响0人  子心_

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'
上一篇 下一篇

猜你喜欢

热点阅读