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 相关文章推荐
js jquery做的图片连续滚动代码
Jan 06 Javascript
js判断鼠标同时离开两个div的思路及代码
May 31 Javascript
jQuery找出网页上最高元素的方法
Mar 20 Javascript
JavaScript使用pop方法移除数组最后一个元素用法实例
Apr 06 Javascript
js实现简单选项卡与自动切换效果的方法
Apr 10 Javascript
JavaScript Length 属性的总结
Nov 02 Javascript
几种tab切换详解
Feb 03 Javascript
浅谈angularJS的$watch失效问题的解决方案
Aug 11 Javascript
原生JS实现DOM加载完成马上执行JS代码的方法
Sep 07 Javascript
vuex实现及简略解析(小结)
Mar 01 Javascript
微信小程序 setData 对 data数据影响问题
Apr 18 Javascript
vue循环中点击选中再点击取消(单选)的实现
Sep 10 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
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
2011/12/25 PHP
php面向对象与面向过程两种方法给图片添加文字水印
2015/08/26 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
2019/05/05 PHP
php输出反斜杠的实例方法
2019/09/19 PHP
网页禁用右键实现代码(JavaScript代码)
2009/10/29 Javascript
jquery跟js初始化加载的多种方法及区别介绍
2014/04/02 Javascript
Javascript中this的用法详解
2014/09/22 Javascript
Node.js中Request模块处理HTTP协议请求的基本使用教程
2016/03/31 Javascript
js select实现省市区联动选择
2020/04/17 Javascript
BootStrap注意事项小结(五)表单
2017/03/10 Javascript
JS+H5 Canvas实现时钟效果
2018/07/20 Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
2018/10/09 Javascript
Koa 中的错误处理解析
2019/04/09 Javascript
Vuex中的Mutations的具体使用方法
2020/06/01 Javascript
Python实现冒泡,插入,选择排序简单实例
2014/08/18 Python
Python魔术方法详解
2015/02/14 Python
python访问类中docstring注释的实现方法
2015/05/04 Python
将Emacs打造成强大的Python代码编辑工具
2015/11/20 Python
python模拟登录并且保持cookie的方法详解
2017/04/04 Python
Python3实现腾讯云OCR识别
2018/11/27 Python
python利用多种方式来统计词频(单词个数)
2019/05/27 Python
Python的PIL库中getpixel方法的使用
2020/04/09 Python
Keras 快速解决OOM超内存的问题
2020/06/11 Python
美国受欢迎的眼影品牌:BH Cosmetics
2016/10/25 全球购物
TripAdvisor土耳其网站:全球知名旅行社区,真实旅客评论
2017/04/17 全球购物
我的applet原先好好的, 一放到web server就会有问题,为什么?
2016/05/10 面试题
一道Delphi上机题
2012/06/04 面试题
大学生个人推荐信范文
2013/11/25 职场文书
法学专业毕业生自荐信范文
2013/12/18 职场文书
合同协议书格式
2014/04/18 职场文书
学校志愿者活动总结
2014/06/27 职场文书
党的群众路线教育实践活动学习计划
2014/11/03 职场文书
2015年大学元旦晚会活动策划书
2014/12/09 职场文书
2015年上半年物业工作总结
2015/03/30 职场文书
幼儿园亲子活动通知
2015/04/24 职场文书
从QQtabBar看css命名规范BEM的详细介绍
2021/08/07 HTML / CSS