node.js 文档总结,持续更新

来源:互联网 发布:弱碱性水的好处 知乎 编辑:程序博客网 时间:2024/06/06 14:06

Node.Js 文档总结,持续更新中

命令:
    01) cmd进入指定文件夹 cd 路径

    02) 输入node js名  出现Server running at http://127.0.0.1:端口号

    03) 页面输入http网址 内容展现

    04) 在cmd中 ctrl + c --重启服务器(更改页面内容需重启服务器)

    05) cd.. 返回上一级

    06) cd文件夹名字  进入指定文件夹

    07) ctrl + c --退出当前终端

    08) ctrl + c 按两次 --退出Node REPL

    09) ctrl + d --退出Node REPL

    10) 向上/向下键 --查看输入命令

    11) tab键 --列出当前命令

    12) help --列出使用命令

    13) break --退出多行表达式

    14) clear --退出多行表达式

    15) save filename --保存到当前的Node REPL 回话到指定文件

    16) load filename --载入当前Node REPL会话的文件内容
Node.js EventEmitter
    01) events模块只提供了一个对象:events.EventEmitter,event.EventEmitter的核心就是事件触发与事件监听功能的封装
          var events=require('events');//引入events木模块
          var eventEmitter=new events.EventEmitter();//创建eventEmitter对象

    02) EventEmitter对象发生错误时,会触发err事件。当添加新的监听器时,newListener事件会触发,当监听事件被移除时,removeListener事件被触发

    03) EventEmitter的每个事件由一个事件名和若干的参数组成,事件名是一个字符串,通常表达一定的语义。
          对于每个事件,EventEmitter支持若干的事件监听器
          当事件触发时,注册到这个事件的事件监听器被依次调用,事件参数作为回调函数的参数传递

    04) EventEmitte:
          属性
          ⑴.addListener(event,listener);--为指定事件添加一个监听器到监听器数组的尾部

          ⑵.on(event,listener);--为指定事件注册一个监听器,接受一个字符串event和一个回调函数
               server.on('connection',function(stream){
                   console.log('someone connected');
               });
          ⑶.once(event,listener);--为指定事件注册单次监听函数
               server.once('connection',function(stream){
                   console.log('Ah',we have our first user!);
              });

          ⑷.removeListener(event,listener);--移除指定事件的某个监听器,监听器必须是该事件已经注册过的
               var callback=function(stream){
                   console.log('someone connected!');
               }
               server.on('connection',callback);
              server.removeListener('connection',callback);

          ⑸.removerAllListeners([event]);--移除所有事件的所有监听器,如果指定事件,则移除指定事件的所有监听器

          ⑹.setMaxListener(n);--默认情况下,EventEmitters如果添加的监听器超过十个就会输出警告,setMaxListeners函数用于提高监听器的默认限制数量

          ⑺.listeners(events);--返回指定事件的监听函数

          ⑻.emit(event,[arg1],[arg2],[...]);--按参数的顺序执行每个监听器,如果事件有注册监听返回true,否则返回false

          类方法
          ⑼.listenerCount(emitter,event);--返回指定事件的监听器数量

          事件
          ⑽.newListener--该事件在添加新监听器时被触发
               event-字符串,事件名称
               listener-处理事件函数

          ⑾.removerListener--从指定监听器数组中删除一个监听器,注意:此操作将会改变处于被监听器之后的那些监听器的索引
               event-字符串,事件名称
               listener-处理事件函数

          error 事件
          ⑴.EventEmitter 遇到异常时候回触发error事件,当error被触发时,EventEmitter规定如果没有响应的监听器,Node.js会把它当做异常,退出程序并输入错误信息
               所以一般要为会触发error事件的对象设置监听器,避免遇到错误后整个程序崩溃
               var events=requore('events');
               var emitter=new events.EventEmitter();
               emitter.emit('error');
          继承 EventEmitter
          ⑴.大多数不会直接用EventEmitter,而是在对象中继承它。包括fs、net、http在内时,只要是支持事件响应的核心模块都是EventEmitter的子类
                原因:  a.首先,具有某个实体功能的对象实现事件符合语义,事件的监听和发射应该不是一个对象的方法
                          b.其次JavaScript的对象循环机制是基于原理的,支持部分多重继承,继承EventEmitter不会打乱对象原有的继承关系

Node.js Buffer(缓冲区)
    1).Node Buffer类可以通过多种方式创建
       方法1:创建长度为10字节的Buffer实例
             var buf=new Buffer(10);
       方法2:通过给定的数组创建Buffer实例
             var buf=new Buffer([10,20,30,40,50]);
    2).写入缓冲区
       buf.write(string[,offset[,length]][,encoding]);
       参数:
            string--写入缓冲区的字符串
            offset--缓冲区开始写入的索引值,默认为0
            length--写入的字节数,默认为buffer.length
            encoding--使用编码,默认为utf8
       返回值:返回实际写入的大小,如果buffer空间不足,则只会写入部分字符串
       实例:
            buf=new Buffer(256);
            len=buf.write('www.runoob.com');
            console.log('写入字节数:'+len);
    3).从缓冲区读取数据
       buf.toString([encoding[,start[,end]]]);
       参数:
            encoding--使用的编码,默认为utf-8
            start--指定开的读取的索引位置,默认为0
            end--结束位置,默认问缓冲区的末尾
       返回值:解码缓冲区数据并使用指定的编码返回字符串
       实例:
            buf=new Buffer(26);
            for(var i=0;i<26;i++){
                buf[i]=i+97;
            };
            console.log(but.toString('ascii'));  // ascii(编码方式) 输出:abcdefghijklmnopqrstuvwxyz
            console.log( buf.toString('ascii',0,5));   // 输出: abcde
            console.log( buf.toString('utf8',0,5));    // 输出: abcde
            console.log( buf.toString(undefined,0,5)); // 使用 'utf8' 编码, 并输出: abcde
    4).将Buffer转换为JSON对象
       buf.toJson();
       返回值:返回json对象
       实例:
            var buf=new Buffer('www.runoob.com');
            var json=buf.toJSON(buf);
            console.log(json);
    5).缓冲区合并
       Buffer.concat(list[,totalLength])
       参数:
            list--用于合并的Buffer对象的数组列表
            totalLength--指定合并后Buffer对象的总长度
       返回值:返回一个多个成员合并的新的Buffer对象
       实例:
            var buffer1=new Buffer('菜鸟教程');
            var buffer2=new Buffer('www.runoob.com');
            var buffer3=Buffer.concat([buffer1,buffer2]);
            console.log('buffer3内容:'+buffer3.toString());
    6).缓冲区比较
       buf.compare(otherBuffer);
       参数:
            otherBuffer--与buf对象比较的另外一个buffer对象
       返回值:返回一个数字,表示buf和otherBuffer之前,之后或相同
       实例:
            var buffer1=new Buffer('ABC');
            var buffer2=new Buffer('ABCD');
            var result=buffer1.compare(buffer2);
            if(result < 0) {
               console.log(buffer1 + " 在 " + buffer2 + "之前");
            }else if(result == 0){
               console.log(buffer1 + " 与 " + buffer2 + "相同");
            }else {
               console.log(buffer1 + " 在 " + buffer2 + "之后");
            }
    7).拷贝缓冲区
       buf.copy(targetBuffer[,targetStart[,sourceStart[,sourceEnd]]]);
       参数:
            targetBuffer--要拷贝的Buffer对象
            targetStart--数字,可选,默认0
            sourceStart--数字,可选,默认0
            sourceEnd--数字,可选,默认:buffer.length
       返回值:没有返回值
       实例:
            var buffer1=new Buffer('ABC');
            //拷贝一个缓冲区
            var buffer2=new Buffer(3);
            buffer1.copy(buffer2);
            console.log('buffer2 content:'+buffer2.toString());
    8).缓冲区剪裁
       buf.slice([start[,end]]);
       参数:
            start--数字,可选,默认0
            end--数字,可选,默认buffer.length
       返回值:返回一个新的缓冲区,和旧的缓冲区指向同一块内存,但是从索引start到end的位置剪切
       实例:
            var buffer1=new Buffer('runoob');
            //剪裁缓冲区
            var buffer2=buffer.slice(0.2);
            console.log('buffer2 content:'+buffer2.toString());
    9).缓冲区长度
       buf.length;
       返回值:返回Buffer对象所占内存的长度
       实例:
            var buffer=new Buffer('www.runoob.com');
            console.log('buffer length:'+buffer.length);
Node.js中的EventEmitter(事件发射器)模块
    1).EventEmitter只有API
    emitter.on(event,listener);注册一个事件
    emitter.once(event,listener);注册一个一次性事件,触发后就被抹掉
    emitter.removeLitener(event,listener);在事件队列中剔除某一个事件
    emitter.removerAllListener([event]);删除整个事件队列,或多个事件
    emitter.listeners(event);返回某些事件emitter.emit(event,[arg1],[arg2],[...]);触发事件,可传入具体参数
    2).使用EventEmitter的方式
    1.直接实例化获取EventEmitter
    var events=require('events');
    //实例化EventEmitter
    var emitter
    待更新



原创粉丝点击