zoukankan      html  css  js  c++  java
  • Node.js API学习笔记(一)

    此文章已经发表于本人博客

    Terminal(终端)

        说起这个使用过linux系统的兄台一般都会知道的,本人理解:类似Putty这些ssh工具通过 软件来实现远程控制主机,对于我们使用者来说,它会显示信息并能接收信息并处理,这个东东就是终端。至于什么伪终端应该就是用软件实现使一套输入输出设备 可以支持多个软终端。

        这里说下node.js中有关的终端模块3个,分别是:STDIO、TTY、REPL。

    一、STDIO

         如果我没理解错控制台应该是属于noddjs标准的输入输出,一般把信息输出到stdout或者是stderr。

    二、TTY

        这个tty好像就跟伪终端解析一样,现在还不明白,不过不是很主要听讲说是准备放弃。

    三、REPL

        这是一个交互式解释器,至于什么是交互性这不解释了。这个REPL为node运行的状态以及信息提供一种交互方式。比如我们在windows下命令行输入:

        node
        >consolg('hello world!');

    这样就会打印出hello world字符。

    四、利用控制台

        上面使用console.log();语句打印信息,那么我们可以使用这个查看很多信息,比如变量的值、堆栈的信息以及断言。

        console.log([data],[...]):第一个参数是字符串,可以带上像C语言一样的占位符,后面可选,本人网上查看了一些资料,占位符支持%s(字符串),%d(数字),%j(json)。例子如下:

        //不带占位符以及参数,输出:hello world
        console.log('hello world');
        //带上占位符,不过不带参数。输出:hello 
        console.log('hello %s');
        //带上占位符以及参数。输出:hello world
        console.log('hello %s', 'world');
        //输出:age is 30
        console.log('age is %d',30);
        //输出:json data:{'age':30}
        console.log('json data:%j',{age:30});
        //输出:{age:30}
        console.log({age:30});
        //时间标记,标识lable开始
        console.time('lable');
        //时间标记,标识lable结束。输出lable : 100ms(可以计算中间的处理时间)
        console.timeEnd('lable');
        //打印当前堆栈lable的信息。输出Trace : lable ----------------------
        console.trace('lable');
        //断言语法:console.assert(expression,[message])
        //输出AssertionError : 异常咯
        console.assert(false,'异常咯');
    

    五、Buffer

        这个Buffer的出现基本上说就是为了解决js本身对于二进制不友好的局面。大家都知道nodejs的存在依赖网络,对不同资源的请求以及响应甚至是文件都是用二进制出里的,使用inodejs专门提供这个机制来处理字节流。

        目前本人收集了Buffer支持的编码有:'ascii':这个速度快;'utf8':支持Unicode字符;'base64':base64字符串编码; 'utf16le'、'ucs2'、 'hex'。

        创建Buffer实例,目前知道的是有4种;

       
    //第一种指定大小,这个大小是固定的不会因为write的写入而改变
        var buf = new Buffer(8);
        buf.write('luoliang');
        console.log(buf);
        //第二种:数组初始化。输出:<Buffer 01 03 fe ff 00>。可以看出是求256的余数,而且不是四舍五入完全是取整
        var buf1 = new Buffer([1.2,3.7,254,255,256]);
        console.log(buf1);
        //第三种:字符串初始化并带编码,默认utf8
        var buf2 = new Buffer('中国人');
        //输出:中国人
        console.log(buf2.toString());
        //下面将会输出乱码
        buf2 = new Buffer('中国人','ascii');
        console.log(buf2.toString());
        //下面将会输出: 9 e4b8ade59bbde4baba
        var buf3 = new Buffer('中国人');
        console.log(buf3.length);
        console.log(buf3.toString('hex'));
        //上面的不同编码对象的length是不同的,这个需要特别注意以下可以自己实验下
        
        //还有一个创建Buffer对象的slice,不过这个我基本没用过,表示截取字符串创建buffer
        var buf4 = new Buffer('中国人');
        var buf5 = buf4.slice();
        //输出:中国人
        console.log(buf5.toString());
        //输出:国
        buf5 = buf4.slice(3,6);
    

    这次的笔记先到这里,接下来继续!
       

  • 相关阅读:
    Bean复制
    java中的ConcurrentModificationException异常
    线程安全问题
    多线程等待唤醒机制之生产消费者模式
    JavaScript数据结构——队列的实现
    JavaScript数据结构——链表的实现
    JavaScript数据结构——栈的实现
    java中map集合的迭代
    SQLServer查询最近一天,三天,一周,一月,一季度方法
    细数网络上十七种安全威胁
  • 原文地址:https://www.cnblogs.com/luoliang/p/4104606.html
Copyright © 2011-2022 走看看