Node.js中process模块常用的属性和方法


Posted in Javascript onDecember 13, 2016

前言

虽然node对操作系统做了很多抽象的工作,但是你还是可以直接和他交互,比如和系统中已经存在的进程进行交互,创建工作子进程。node是一个用于事件循环的线程,但是你可以在这个事件循环之外创建其他的进程(线程)参与工作。

如果不是和命令行工具打交道,可能我们很少有机会去用到process模块中的一些方法或者属性。不过如果你要做类似于webpack或者gulp等较为复杂的构建工具,由于bash界面就是和用户直接交流的工具,因此友好的输入输出,完整的提示都非常有必要了。

属性

一张表格大概可以看到process有哪些属性

属性名称 用途
platform 判断当前系统平台
argv 当前进程的命令行参数数组
execPath 当前进程的可执行文件的绝对路径
stdout 指向标准输出
stdin 指向标准输入
stderr 指向标准错误
stderr 指向标准错误

我们可以直接在代码中这样使用

console.log(porcess.platform) 
// darwin

使用argv 会返回命令行的数组,我们可以通过数组来获取用户具体的命令

console.log(process.argv); 
// [ '/usr/local/bin/node', '/Users/ali-130257n/www/weex-jackzoo/projects/demo.js', '-p', '-v' ]

一般情况下,我们更想获取最后的一些参数,前面两个不需要,我们可以

let args = process.argv.slice(2); 
console.log(args)

// [ '-p', '-v' ]

方法

process 提供的方法有很多。大致我们可以用到的有下面一些。

     cwd:返回运行当前脚本的工作目录的路径

     abort:立即结束进程

     nextTick: 指定下次事件循环首先运行的任务

process 支持的一些事件,通过一些事件,我们可做一些友好的提示或者处理。

     uncaughtException:当前进程抛出一个没有被捕捉的意外时,会触发uncaughtException事件

     message: 接受来自父进程的消息

     rejectionHandled:用于捕获与它关联的promise错误处理并且产生的reject

     unhandledRejection: 同理这个便是用于捕获没有与之关联promise错误处理的reject

const unhandledRejections = new Map(); 
process.on('unhandledRejection', (reason, p) => { 
 unhandledRejections.set(p, reason);
});
process.on('rejectionHandled', (p) => { 
 unhandledRejections.delete(p);
});

warning: 当前进程产生一个警告的时候出发

process.on('warning', (warning) => { 
 console.warn(warning.name); // Print the warning name
 console.warn(warning.message); // Print the warning message
 console.warn(warning.stack); // Print the stack trace
});

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
自动生成文章摘要的代码[JavaScript 版本]
Mar 20 Javascript
“不能执行已释放的Script代码”错误的原因及解决办法
Sep 09 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
Dec 10 Javascript
js实现绿白相间竖向网页百叶窗动画切换效果
Mar 02 Javascript
4个顶级开源JavaScript图表库
Sep 29 Javascript
详解ng-alain动态表单SF表单项设置必填和正则校验
Jun 11 Javascript
详解Jest结合Vue-test-utils使用的初步实践
Jun 27 Javascript
JS删除数组指定值常用方法详解
Jun 04 Javascript
vue实现图片按比例缩放问题操作
Aug 11 Javascript
vue axios封装httpjs,接口公用配置拦截操作
Aug 11 Javascript
node.js 如何监视文件变化
Sep 01 Javascript
原生js实现购物车
Sep 23 Javascript
Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
Dec 13 #Javascript
node.js 和HTML5开发本地桌面应用程序
Dec 13 #Javascript
AngularJS中$apply方法和$watch方法用法总结
Dec 13 #Javascript
vue.js学习之递归组件
Dec 13 #Javascript
AngularJS过滤器filter用法总结
Dec 13 #Javascript
ES6通过babel转码使用webpack使用import关键字
Dec 13 #Javascript
AngularJS服务service用法总结
Dec 13 #Javascript
You might like
加强版phplib的DB类
2008/03/31 PHP
ThinkPHP之import方法实例详解
2014/06/20 PHP
CodeIgniter框架URL路由总结
2014/09/03 PHP
php异步多线程swoole用法实例
2014/11/14 PHP
PHP识别二维码的方法(php-zbarcode安装与使用)
2016/07/07 PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
2016/09/11 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
select、radio表单回显功能实现避免使用jquery载入赋值
2013/06/08 Javascript
jquery超简单实现手风琴效果的方法
2015/06/05 Javascript
JS多文件上传的实例代码
2017/01/11 Javascript
Windows下使用Nodejs运行js的方法
2017/09/02 NodeJs
jquery使用iscorll实现上拉、下拉加载刷新
2017/10/26 jQuery
Node.js实现发送邮件功能
2017/11/06 Javascript
Nodejs异步回调之异常处理实例分析
2018/06/22 NodeJs
node上的redis调用优化示例详解
2018/10/30 Javascript
vue组件tabbar使用方法详解
2018/11/06 Javascript
基于Vue的商品主图放大镜方案详解
2019/09/19 Javascript
JS常用排序方法实例代码解析
2020/03/03 Javascript
JavaScript中的各种宽高属性的实现
2020/05/08 Javascript
python计算书页码的统计数字问题实例
2014/09/26 Python
itchat接口使用示例
2017/10/23 Python
wxpython实现图书管理系统
2018/03/12 Python
Python贪心算法实例小结
2018/04/22 Python
pandas去重复行并分类汇总的实现方法
2019/01/29 Python
python七夕浪漫表白源码
2019/04/05 Python
Python列表切片常用操作实例解析
2019/12/16 Python
python中如何使用insert函数
2020/01/09 Python
五分钟带你搞懂python 迭代器与生成器
2020/08/30 Python
中国最大的名表商城:万表网
2016/08/29 全球购物
英国赛车、汽车改装和摩托车零件购物网站:Demon Tweeks
2018/10/29 全球购物
调研座谈会发言材料
2014/08/23 职场文书
党的群众路线教育实践活动个人对照检查材料
2014/09/22 职场文书
2014年德育工作总结
2014/11/20 职场文书
黄石寨导游词
2015/02/05 职场文书
2016年清明节期间群众祭祀活动工作总结
2016/04/01 职场文书
Java spring定时任务详解
2021/10/05 Java/Android