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 序列化对象实现代码
Dec 18 Javascript
jQuery hover 延时器实现代码
Mar 12 Javascript
js判断一个元素是否为另一个元素的子元素的代码
Mar 21 Javascript
本地图片预览(支持IE6/IE7/IE8/Firefox3)经验总结
Mar 25 Javascript
利用JS延迟加载百度分享代码,提高网页速度
Jul 01 Javascript
jquery scroll()区分横向纵向滚动条的方法
Apr 04 Javascript
通过Jquery.cookie.js实现展示浏览网页的历史记录超管用
Oct 23 Javascript
解决给dom元素绑定click等事件无效问题的方法
Feb 17 Javascript
Angular.Js之Scope作用域的学习教程
Apr 27 Javascript
详解Angular2 关于*ngFor 嵌套循环
May 22 Javascript
jQuery实现页码跳转式动态数据分页
Dec 31 jQuery
微信小程序实现指定显示行数多余文字去掉用省略号代替
Jul 25 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
对squid中refresh_pattern的一些理解和建议
2009/04/17 PHP
Codeigniter+PHPExcel实现导出数据到Excel文件
2014/06/12 PHP
ThinkPHP的L方法使用简介
2014/06/18 PHP
HR vs CL BO3 第一场 2.13
2021/03/10 DOTA
JS获取并操作iframe中元素的方法
2013/03/21 Javascript
浅谈javascript 函数属性和方法
2015/01/21 Javascript
详解AngularJS中的http拦截
2016/02/09 Javascript
WebPack基础知识详解
2017/01/16 Javascript
angular或者js怎么确定选中ul中的哪几个li
2017/08/16 Javascript
原生JS封装_new函数实现new关键字的功能
2018/08/12 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
2018/08/22 Javascript
详解关于Angular4 ng-zorro使用过程中遇到的问题
2018/12/05 Javascript
JS重学系列之聊聊new操作符
2019/03/04 Javascript
深入学习JavaScript中的bom
2019/05/27 Javascript
微信小程序的引导页实现代码
2020/06/24 Javascript
详解javascript脚本何时会被执行
2021/02/05 Javascript
[01:58]2018DOTA2亚洲邀请赛趣味视频——交流
2018/04/03 DOTA
python回调函数中使用多线程的方法
2017/12/25 Python
python3调用百度翻译API实现实时翻译
2018/08/16 Python
基于python实现KNN分类算法
2020/04/23 Python
Python动态语言与鸭子类型详解
2019/07/01 Python
Python requests上传文件实现步骤
2020/09/15 Python
HTML5 canvas 基本语法
2009/08/26 HTML / CSS
香港卓悦化妆品官网:BONJOUR
2017/09/21 全球购物
欧洲领先的电子和电信零售商和服务提供商:Currys PC World Business
2017/12/05 全球购物
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
Grow Gorgeous美国官网:只要八天,体验唤醒毛囊后新生的茂密秀发
2018/06/04 全球购物
NFL官方在线商店:NFLShop
2020/07/29 全球购物
简历自我评价怎么写好呢?
2014/01/04 职场文书
和平主题的演讲稿
2014/01/12 职场文书
护士辞职信模板
2014/01/20 职场文书
社会实践评语
2014/04/28 职场文书
小班幼儿评语大全
2014/04/30 职场文书
云冈石窟导游词
2015/02/04 职场文书
幼儿园秋季开学通知
2015/07/16 职场文书
Python 详解通过Scrapy框架实现爬取CSDN全站热榜标题热词流程
2021/11/11 Python