Node.js文档学习笔记(2)

8.C/C++扩展

C/C++运行效率要比js高些吧, 在一些运算密集的模块, 如果能编译成二进制模块, 能提高运行效率.

这段先跳过去, 稍后详细研究.

 

9.process

process是一个全局对象, 是EventEmitter的一个实例.

 

Event: exit

线程退出的时候触发的事件

收到此事件后会马上退出, 在回调函数中再添加回调函数是不会执行的, 见文档中示例代码.

 

Event:uncaughtExecption

对此事件侦听后, 默认的显示stack并退出的动作将不再执行.

侦听后, 发生Exception之后的代码不会得到执行, 但不影响已经添加的回调函数的执行.添加了侦听之后, 会有最后一次记录异常的机会, 或许有助于发现问题.

这个不影响回调函数的设计似乎很奇怪啊, 想不清楚有什么好处.见示例代码.

 

Signal Event:信号事件

这个讲的是一些信号事件, 木有学过系统编程, 不懂这个. Ctrl+C会触发SIGINT

http://en.wikipedia.org/wiki/C_signal_handling   参见这个. 似乎和这个讲的是同一个东西.

 

process.stdout, stderr

关于block那块不明白.

 

 

 

 

process.stdin

stdin默认是暂停的状态, 所以需要调用process.stdin.resume()来启用输入.

可以在stdin监听data , end 事件. data对应收到新的输入时, end对应输入结束时.比如Ctrl+D时, 输入会结束.

 

process.argv

数组, 参数, 第一个值是node, 第二个是js文件路径, 后面就是依次的参数了

 

process.execPath

启动该进程的node的路径

 

process.cwd process.chdir

cwd返回当前工作目录, chdir则用来改变当前工作目录

 

process.env

当前终端传回的一些变量, 让see enviorn(7), 不过连个链接也木有, 也不知道该到哪里去see. 再向后看看再说.

 

process.exit([code])

默认返回0, 并中断脚本执行

 

process.getgid setgid 

设置和获取groupid用的

 

process.getuid setuid

设置和获取user identity的, 没有明白说什么设置为用户名时, 会block什么意思.

 

process.version versions

输出node的版本或者组件的版本, 

 

process.installPrefix

我的这个输出值为undefined.

 

process.kill(pid, [signal])

又是信号, 不懂.

这个函数虽然叫做kill, 但他其实只是发送了一个信号,

 

process.pid, title, arch, platform

pid就是PID, titile 用于ps命令显示, arch表明系统架构, arm/ia32/x64, platform 平台

 

process.memoryUsage()

内存使用量. heapTotal, heapUsed是指v8虚拟机的使用量

 

process.nextTick(callback)

不懂要这个东西做什么用的, 说是比setTimeout(fn, 0)更有效率, 不知道该如何理解, 也不清楚其使用场景.

process.umask([mask])

mask的这个概念也不是很懂, 似乎是和权限相关的, 但是一个进程的权限? 似乎有点难以理解.

 

process.uptime()

获取当前执行时间, 秒计算. 不足一秒似乎是四舍五入了.

 

10.Utilities实用程序, 模块util

稳定度:5级

 

util.format()

会被解析的模式, %s字符串, %d数字, %j JSON, 

%% 输出一个%, 或许可以理解成转义字符, 

如果输入的参数多于占位符, 那么多余的字符会被用空格连接起来并且输出

 

util.debug(string)

会直接输出到stderr

 

util.log(string)

会输出一个时间和string到stdout

 

util.inspect(object, [showHidden], [depth], [colors])

返回一个字符串表示的对象, 调试的时候很有用

 

util.isArray

判断是否是字符串

 

util.isRegExp

判断是否是正则表达式

 

util.isDate(object)

需要注意的是, new Date()返回的是对象, isDate会返回true, Date()返回的则是字符串了, isDate就会返回false了

 

util.isError

如果是Error对象返回true

 

util.pump(readableStream, writableStream, [callback])

这个似乎是实验性质的函数

将一个读取一个readableStream, 并转发到writableStream.

 

util.inherits(contructor, superConstructor)

一个类从另一个类继承

posted on 2012-06-04 13:41  young40  阅读(282)  评论(0编辑  收藏  举报

导航