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中Eval函数的使用
Mar 23 Javascript
jquery 面包屑导航 具体实现
Jun 05 Javascript
JS代码判断IE6,IE7,IE8,IE9的函数代码
Aug 02 Javascript
Google (Local) Search API的简单使用介绍
Nov 28 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
Jan 31 Javascript
JavaScript中的console.trace()函数介绍
Dec 29 Javascript
js判断当前页面用什么浏览器打开的方法
Jan 06 Javascript
JavaScript中原型链存在的问题解析
Sep 25 Javascript
详解Sea.js中Module.exports和exports的区别
Feb 12 Javascript
ES6中Array.copyWithin()函数的用法实例详解
Sep 16 Javascript
浅谈React组件之性能优化
Mar 02 Javascript
vue 实现axios拦截、页面跳转和token 验证
Jul 17 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
PHP中uploaded_files函数使用方法详解
2011/03/09 PHP
phpExcel中文帮助手册之常用功能指南
2014/08/18 PHP
跟我学Laravel之请求与输入
2014/10/15 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
解决PHP 7编译安装错误:cannot stat ‘phar.phar’: No such file or directory
2017/02/25 PHP
JavaScrip单线程引擎工作原理分析
2010/09/04 Javascript
用js来刷新当前页面保留参数的具体实现
2013/12/23 Javascript
jQuery插件开发的两种方法及$.fn.extend的详解
2014/01/16 Javascript
用javascript将数据导入Excel示例代码
2014/09/10 Javascript
Node.js的特点和应用场景介绍
2014/11/04 Javascript
jQuery插入节点和移动节点用法示例(insertAfter、insertBefore方法)
2016/09/08 Javascript
jsp 网站引入外部css或者js失效问题解决
2016/10/31 Javascript
HTML5 js实现拖拉上传文件功能
2020/11/20 Javascript
jQuery简单实现遍历单选框的方法
2017/03/06 Javascript
vue2.0 axios前后端数据处理实例代码
2017/06/30 Javascript
浅谈node中的exports与module.exports的关系
2017/08/01 Javascript
使用vuex缓存数据并优化自己的vuex-cache
2018/05/30 Javascript
vue组件开发之用户无限添加自定义填写表单的方法
2018/08/28 Javascript
node使用async_hooks模块进行请求追踪
2021/01/28 Javascript
Python实现网站文件的全备份和差异备份
2014/11/30 Python
Python实现简单的代理服务器
2015/07/25 Python
Python编程实现使用线性回归预测数据
2017/12/07 Python
python合并已经存在的sheet数据到新sheet的方法
2018/12/11 Python
Python常用库大全及简要说明
2020/01/17 Python
利用Python实现某OA系统的自动定位功能
2020/05/27 Python
Java ExcutorService优雅关闭方式解析
2020/05/30 Python
pytorch掉坑记录:model.eval的作用说明
2020/06/23 Python
移动HTML5前端框架—MUI的使用
2017/12/18 HTML / CSS
Bandier官网:奢侈、时尚前卫的健身服装首选目的地
2020/07/05 全球购物
描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理
2015/03/25 面试题
二手书店创业计划书
2014/01/16 职场文书
金融学专科生自我鉴定
2014/02/21 职场文书
2015年党员个人工作总结
2015/05/13 职场文书
小学毕业感言200字
2015/07/30 职场文书
Jedis操作Redis实现模拟验证码发送功能
2021/09/25 Redis
MySQL创建定时任务
2022/01/22 MySQL