nodeJS入门例子一—全局对象之process
2011-11-22 23:00
585 查看
process
Event: 'exit'
Event: 'uncaughtException'
Signal Events
process.stdout
process.stderr
process.stdin
process.argv
process.execPath
process.chdir(directory)
process.cwd()
process.env
process.exit(code=0)
process.getgid()
process.setgid(id)
process.getuid()
process.setuid(id)
process.version
process.versions
process.installPrefix
process.kill(pid, signal='SIGTERM')
process.pid
process.title
process.arch
process.platform
process.memoryUsage()
process.nextTick(callback)
process.umask([mask])
process.uptime()
[/code]
Example of listening for
[/code]
A
例子:定义一个
将与其他数据流没有阻塞。
[/code]
将与其他数据流没有阻塞。[/code]
一个打开标准输入并监听这两个事件的例子:
process.argv
一个包含命令行参数的集合,第一个元素将是"node",第二个元素将是JavaScript 文件的名字,下一个与阿苏将是任何复交命令行参数。
这将会生成:
Example:
process.chdir(directory)
更换当前过程的工作目录或者抛出异常。
退出失败用1表示:
获取过程组一致性。这是一个数字类型的group id 不是group 名称。
[/code]
process.setgid(id)
设置过程group id,这个设置数字类型(numerical)的id或字符串类型(string)group name,如果详细说明了group name,而作为数字类型id时此方法将阻塞。
Will output:
process.installPrefix
一个暴露NODE_PREFIX的内编译属性。
注意:因为函数名为process.kill,是一个真正的信号发送器,如结束系统调用。信号发送可能做一些其他事情不同于结束目标过程。
例子:发送一个信号给自己:
process.arch
系统运行的处理器的架构:“arm”, "ia32", "x64"
process.memoryUsage()
返回字节码为单位的node进程的内存使用情况描述对象
将会产生:
process.nextTick(callback)
下个事件循环中调用这个回调函数。这不是
Event: 'exit'
Event: 'uncaughtException'
Signal Events
process.stdout
process.stderr
process.stdin
process.argv
process.execPath
process.chdir(directory)
process.cwd()
process.env
process.exit(code=0)
process.getgid()
process.setgid(id)
process.getuid()
process.setuid(id)
process.version
process.versions
process.installPrefix
process.kill(pid, signal='SIGTERM')
process.pid
process.title
process.arch
process.platform
process.memoryUsage()
process.nextTick(callback)
process.umask([mask])
process.uptime()
process
process是全局对象并且能够在任何地方访问,它是
EventEmitter的一个实体 。
Event: 'exit'
function () {}
当process即将退出时发出。这是一个很好用的检查模块(module)状态的常量时间(perform constant time)。当"exit"回调完成后主事件的循环将不再运行,所以定时器不会列入此。
监听exit例子:
process.on('exit', function () { process.nextTick(function () { console.log('This will not run'); }); console.log('About to exit.'); });
Event: 'uncaughtException'
function (err) { }
当异常冒泡发出时触发 所有的都回归事件循环。如果给这个异常添加一个监听,默认的行为(打印异常并退出)将不再发生。
uncaughtException异常例子:
process.on('uncaughtException', function (err) { console.log('Caught exception: ' + err); }); setTimeout(function () { console.log('This will still run.'); }, 500); // Intentionally cause an exception, but don't catch it. nonexistentFunc(); console.log('This will not run.'); 注意:uncaughtException是一个非常原始的异常处理。在程序中使用 try / catch 将会更好地控制程序流。尤其是服务器端程序被设计成继续运行,
uncaughtException是一个非常有用并且安全的机制。
[/code]
Signal Events
function () {}
当过程( process)接受到某个信号时触发。参考设置对指定型号处理(2)
Example of listening for
SIGINT:
// Start reading from stdin so we don't exit. process.stdin.resume(); process.on('SIGINT', function () { console.log('Got SIGINT. Press Control-D to exit.'); }); 一种更简单的发送SIGINT信号的方法是在终端程序中使用
Control-C
[/code]
process.stdout
一个可写流到标准输出。A
Writable Streamto
stdout.
例子:定义一个
console.log
console.log = function (d) { process.stdout.write(d + '\n'); }; process.stderr和
process.stdout在Node中部像其他的数据流,当写入到里面通常将阻塞。将在涉及到规则文件或者TTY文件描述时阻塞。在涉及到管道的情况时,
将与其他数据流没有阻塞。
[/code]
process.stderr
一个可写流到标准错误输出process.stderr和
process.stdout在Node中部像其他的数据流,当写入到里面通常将阻塞。将在涉及到规则文件或者TTY文件描述时阻塞。在涉及到管道的情况时,
将与其他数据流没有阻塞。[/code]
process.stdin
一个标准输入的可读数据流。标准输入流默认将暂停,所以必须调用process.stdin.resume()去从中读取。
一个打开标准输入并监听这两个事件的例子:
process.stdin.resume(); process.stdin.setEncoding('utf8'); process.stdin.on('data', function (chunk) { process.stdout.write('data: ' + chunk); }); process.stdin.on('end', function () { process.stdout.write('end'); });
process.argv
一个包含命令行参数的集合,第一个元素将是"node",第二个元素将是JavaScript 文件的名字,下一个与阿苏将是任何复交命令行参数。// print process.argv process.argv.forEach(function (val, index, array) { console.log(index + ': ' + val); });
这将会生成:
$ node process-2.js one two=three four 0: node 1: /Users/mjr/work/node/process-2.js 2: one 3: two=three 4: four
process.execPath
这是一个可执行的开始的过程的绝对路径名称。Example:
/usr/local/bin/node
process.chdir(directory)
#
更换当前过程的工作目录或者抛出异常。console.log('Starting directory: ' + process.cwd()); try { process.chdir('/tmp'); console.log('New directory: ' + process.cwd()); } catch (err) { console.log('chdir: ' + err); }
process.cwd()
返回当前过程的工作目录console.log('Current directory: ' + process.cwd());
process.env
一个包含用户环境的对象,参看 environ(7)process.exit(code=0)
使用详细的代码结束过程。如果省略,退出用0表示成功。退出失败用1表示:
process.exit(1);process.getgid()
获取过程组一致性。这是一个数字类型的group id 不是group 名称。
[/code]
console.log('Current gid: ' + process.getgid());
process.setgid(id)
设置过程group id,这个设置数字类型(numerical)的id或字符串类型(string)group name,如果详细说明了group name,而作为数字类型id时此方法将阻塞。console.log('Current gid: ' + process.getgid()); try { process.setgid(501); console.log('New gid: ' + process.getgid()); } catch (err) { console.log('Failed to set gid: ' + err); }
process.getuid()
获取过程的用户id(puser identity)。这是一个数字类型的userid,不是username。console.log('Current uid: ' + process.getuid());
process.setuid(id)
设置过程的用户id(user identity),这接受一个数字类型的id或者一个字符串类型的username。如果申明的是username,此方法在将转换数字类型id时阻塞。console.log('Current uid: ' + process.getuid()); try { process.setuid(501); console.log('New uid: ' + process.getuid()); } catch (err) { console.log('Failed to set uid: ' + err); }
process.version
一个暴力node版本(NODE_VERSION)的内编译属性
console.log('Version: ' + process.version);
process.versions
一个暴露nodejs版本和其依赖的属性console.log(process.versions);
Will output:
{ node: '0.4.12', v8: '3.1.8.26', ares: '1.7.4', ev: '4.4', openssl: '1.0.0e-fips' }
process.installPrefix
一个暴露NODE_PREFIX的内编译属性。console.log('Prefix: ' + process.installPrefix);
process.kill(pid, signal='SIGTERM')
发送一个信号到process。pid是过程id,signal是字符串描述的要发送的信号。信号名是字符串格式的,如:'SIGINT' 或者 'SIGUSR1'。如果省略,默认将设置为'SIGINT'注意:因为函数名为process.kill,是一个真正的信号发送器,如结束系统调用。信号发送可能做一些其他事情不同于结束目标过程。
例子:发送一个信号给自己:
process.on('SIGHUP', function () { console.log('Got SIGHUP signal.'); }); setTimeout(function () { console.log('Exiting.'); process.exit(0); }, 100); process.kill(process.pid, 'SIGHUP');
process.pid
过程的pidconsole.log('This process is pid ' + process.pid);
process.title
设置或者获取过程状态(ps)中的显示标题。process.arch
系统运行的处理器的架构:“arm”, "ia32", "x64"console.log('This processor architecture is ' + process.arch);
process.platform
运行的系统平台.'linux2',
'darwin',等。
console.log('This platform is ' + process.platform);
process.memoryUsage()
返回字节码为单位的node进程的内存使用情况描述对象var util = require('util'); console.log(util.inspect(process.memoryUsage()));
将会产生:
{ rss: 4935680, heapTotal: 1826816, heapUsed: 650472 }
heapTotal
和heapUsed涉及到 V8的内存使用。
process.nextTick(callback)
下个事件循环中调用这个回调函数。这不是 setTimeout(fn, 0)的一个别名,这更有效率。
process.nextTick(function () { console.log('nextTick callback'); });
process.umask([mask])
设置或读取过程的文件模式遮罩。子过程继承父过程的遮罩。如果遮罩参数设置了将返回旧的遮罩数据,不然返回当前遮罩值。var oldmask, newmask = 0644; oldmask = process.umask(newmask); console.log('Changed umask from: ' + oldmask.toString(8) + ' to ' + newmask.toString(8));
process.uptime()
node运行的时间,秒相关文章推荐
- nodeJS入门例子一—全局对象
- nodeJS入门例子一—全局对象之控制台(console)
- nodeJS入门例子一—全局对象
- nodejs入门(08)-全局对象
- Nodejs随笔(三):全局对象之process
- NodeJs学习笔记 01 -- 入门之模块、全局对象
- NodeJS入门(五)—— process对象
- nodejs笔记一--模块,全局process对象;
- NodeJS 全局对象
- nodeJS入门例子一—插件(Addons)
- node中全局对象三 --- process
- nodejs入门--process 进程
- Nodejs中的Global object全局对象
- NodeJS学习系列课程笔记(NodeJS 全局对象相关使用方法)
- ◆HelloWorld例子 → 入门◆CURD → 归类知识点◆对象(属性、方法) → 本质◆
- 一起读nodejs(一)----概览和全局对象(Synopsis &Global Objects)
- Node.js入门笔记(2):全局对象(1)
- nodejs学习笔记 -- 全局对象与全局变量
- nodejs 全局对象 global
- nodejs基础 -- 全局对象