Nodejs 应用场景.pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Nodejs 应用场景

Nodej s 应⽤场景 应⽤场景 和进程管理相关的 API 单独介绍起来⽐较枯燥,因此这⾥从⼀些典型的应⽤场 出 发,分别介绍⼀些重要 API 的使⽤⽅法。 如何获取命令⾏参数 在 NodeJS 中可以通过 process.argv 获取命令⾏参数。但是⽐较意外的是,node 执⾏程 序路径和主模块⽂件路径固定占据了 argv[0]和 argv[1]两个位置,⽽第⼀个命令⾏参 数从 argv[2]开始。为了让 argv 使⽤起来更加⾃然,可以按照以下⽅式处理。 function main(argv) { // ... } main(process.argv .slice(2)); 如何退出程序 通常⼀个程序做完所有事情后就正常退出了,这时程序的退出状态码为 0 。或者⼀个 程序运⾏时发⽣了异常后就挂了,这时程序的退出状态码不等于 0 。如果我们在代码 中捕获了某个异常,但是觉得程序不应该继续运⾏下去,需要⽴即退出,并且需要把 退出状态码设置为指定数字,⽐如1,就可以按照以下⽅式: try { // ... } catch (err) { // ... process.exit(1); } 如何控制输⼊输出 NodeJS 程序的标准输⼊流 (stdin )、⼀个标准输出流 (stdout )、⼀个标准错误流 (stderr )分别对应 process.stdin 、process.stdout 和 process.stderr ,第⼀个是只读数据 流,后边两个是只写数据流,对它们的操作按照对数据流的操作⽅式即可。例如, console .log 可以按照以下⽅式实现。 function log() { process.stdout.write( util.format.apply(util arguments) + \n); } 如何降权 在 Linux 系统下,我们知道需要使⽤ root 权限才能监听 1024 以下端⼜。但是⼀旦完 成端⼜监听后,继续让程序运⾏在 root 权限下存在安全隐患,因此最好能把权限降下 来。以下是这样⼀个例⼦。 http.createServer(callback).listen(80 function () { var env = process.env uid = parseInt(env[SUDO_UID] || process.getuid() 10) gid = parseInt(env[SUDO_GID] || process.getgid() 10); process.setgid(gid); process.setuid(uid); }); 上例中有⼏点需要注意: 如果是通过 sudo 获取 root 权限的,运⾏程序的⽤户的 ID 和 GID 保存在环境变量 S DO_ ID 和 S DO_GID ⾥边。如果是通过 chmod +s ⽅式获取 root 权限的,运⾏程 序的⽤户的 ID 和 GID 可直接通过 process.getuid 和 process.getgid ⽅法获取。 process.setuid 和 process.setgid ⽅法只接受 number 类型的参数。 降权时必须先降 GID 再降 ID ,否则顺序反过来的话就没权限更改程序的 GID 了。 如何创建⼦进程 以下是⼀个创建 NodeJS ⼦进程的例⼦。 var child = child_process.spawn(node [ xxx .js ]); child.stdout.on(data function (data) { console.log(stdout: + data); }); child.stderr.on(data function (data) { console.log(stderr: + data); }); child.on(close function (code) { console.log(child process exited with code + code); }); 上例中使⽤了.spawn(exec args options)⽅法,该⽅法⽀持三个参数。第

文档评论(0)

ipbohn97 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档