美文网首页
nodejs模块/深复制与浅复制/模块化开发

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

作者: 子心_ | 来源:发表于2019-07-09 09:33 被阅读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'
    

    相关文章

      网友评论

          本文标题:nodejs模块/深复制与浅复制/模块化开发

          本文链接:https://www.haomeiwen.com/subject/cpssfctx.html