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);

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

时间: 2024-12-09 08:43:15

Node.js API学习笔记(一)的相关文章

Node.js API学习笔记(二)

本文发表于本人博客. 上一节笔记说到创建Buffer实例,这节继续讲Buffer.本节讲解下Buffer的一些静态方法.写入以及读取方法. Buffer.isEncoding(编码)判断nodejs是否支持此编码 console.log(Buffer.isEncoding("gb2312"));//不管过程怎么node都不支持这个编码,死记 console.log(Buffer.isEncoding("utf8")); //true console.log(Buff

node.js 基础学习笔记3 -http

http模块,其中封装了一个高效的HTTP服务器和一个建议的HTTP客户端 http.server是一个基于事件的HTTP服务器 http.request则是一个HTTP客户端工具,用户向服务器发送请求. HTTP服务器 (1)http.Server实现,提供了一套封装级别很低的API,仅仅是流控制和简单的解析. request当客户端请求到来时,该事件被触发,提供两个参数,分别是http.ServerRequest和http.ServerResponse的实例,表示请求和相应信息. var h

Node.js入门学习笔记(三)

基于事件驱动的回调 这个问题不好回答,不过这是Node.js原生的工作方式.它是事件驱动的,这也是它为什么这么快的原因.你可以花一点时间阅读一下Felix Geisendörfer的大作 Understanding node.js 可了解一些背景知识. 当我们使用http.createServer方法的时候,我们当然不只是想要一个侦听某个端口的服务器,我们还想要这在服务器收到一个HTTP请求的时候做点什么. 问题是,这是异步的,请求任何时候都可能到达,但是我们的服务器却跑在一个单进程中. 写PH

Node.js入门学习笔记(二)

函数传递 举例来说,你可以这样做: function say(word) {     console.log(word); } function execute(someFunction, value) {    someFunction(value); } execute(say, "Hello"); 请仔细阅读这段代码!在这里,我们把say函数作为execute函数的第一个变量进行了传递.这里返回的不是say的返回值,而是say本身! 这样一来,say就变成了execute中的本地

Node.js知识点学习

Node.js知识点学习 一.基本概念 Node.js,或者 Node,是一个可以让 JavaScript 运行在服务器端的平台.可以说,Node.js开创了javascript模块化开发的先河,早期的javascript需求都很简单,基本都是写成函数的,然后是面向过程的写法,后来慢慢的引入面向对象开发思想,再后来就慢慢写成 类.最后node.js的出现才开始有了js模块化开发的概念,这使得臃肿的js代码免去了命名冲突等一系列开发难题. Node最大的特点就是采用了异步式I/O与事件驱动的架构设

详解Node.js API系列C/C++ Addons(3) 程序实例

http://blog.whattoc.com/2013/09/08/nodejs_api_addon_3/ 再续前文,前文介绍了node.js 的addon用法和google v8 引擎,下面,我们进入真正的编码,下面将会通过六个例子,学习node addon 范例,了解addon编程的特性 创建一个空项目 随机数模块 向模块传递参数 回调函数处理 线程处理 对象管理 创建一个空项目 vi modulename.cpp #include <node.h> void RegisterModul

node.js(API解读) - process (http://snoopyxdy.blog.163.com/blog/static/60117440201192841649337/)

node.js(API解读) - process 2011-10-28 17:05:34|  分类: node |  标签:nodejs  nodejsprocess  node.jsprocess  nodjsapi  node.jsapi   |举报 |字号 订阅 下载LOFTER 我的照片书  | nodejs的process是一个全局对象,他提供了一些方法和属性,node.js官方的API说的很简单,并没有把一些详细的应用方法和作用写出来,下面结合我自己的学习,做一下小结吧.1.Even

js/jquery学习笔记

javascript简介 JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言. 不同于服务器端脚本语言,例如PHP与ASP,JavaScript是客户端脚本语言,也就是说JavaScript是在用户的浏览器上运行,不需要服务器的支持而可以独立运行 . JavaScript是一种脚本语言,其源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行.解释语言的弱 点是安全性较差,而且在JavaScript中,如果一条运行不了,那么下面的语

TCP协议和socket API 学习笔记

本文转载至 http://blog.chinaunix.net/uid-16979052-id-3350958.html 分类: 原文地址:TCP协议和socket API 学习笔记 作者:gilbertjuly  • TCP包头 ACK为1时,确认序号有效,表示期望收到的下一个序号,是上次成功收到的字节序加1. SYN, FIN都占用一个序号. • TCP连接的建立 client通过connect()来建立TCP连接,connect()会发送SYN报文: server通过bind().list