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 相关文章推荐
一个无限级XML绑定跨框架菜单(For IE)
Jan 27 Javascript
Extjs在exlipse中设置自动提示的方法
Apr 07 Javascript
jquery next nextAll nextUntil siblings的区别介绍
Oct 05 Javascript
Window.Open如何在同一个标签页打开
Jun 20 Javascript
认识Knockout及如何使用Knockout绑定上下文
Dec 25 Javascript
JavaScript获取客户端IP的方法(新方法)
Mar 11 Javascript
leaflet的开发入门教程
Nov 17 Javascript
Three.JS实现三维场景
Dec 30 Javascript
使用taro开发微信小程序遇到的坑总结
Apr 08 Javascript
浅谈Vue中render中的h箭头函数
Nov 07 Javascript
vue 实现根据data中的属性值来设置不同的样式
Aug 04 Javascript
vue移动端下拉刷新和上滑加载
Oct 27 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生成毫秒时间戳的实例讲解
2017/09/22 PHP
PHP 获取 ping 时间的实现方法
2017/09/29 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
2019/04/02 PHP
php使用curl模拟多线程实现批处理功能示例
2019/07/25 PHP
PHP重载基础知识回顾
2020/09/10 PHP
判断js对象是否拥有某一个属性的js代码
2013/08/16 Javascript
JavaScript对内存分配及管理机制详细解析
2013/11/11 Javascript
jquery showModelDialog的使用方法示例详解
2013/11/19 Javascript
asp.net刷新本页面的六种方法总结
2014/01/07 Javascript
node.js中的path.extname方法使用说明
2014/12/09 Javascript
JS的框架Polymer中的dom-if和is属性使用说明
2015/07/29 Javascript
JS组件Bootstrap Select2使用方法详解
2020/04/17 Javascript
BootStrap学习系列之布局组件(下拉,按钮组[toolbar],上拉)
2017/01/03 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
2017/04/29 jQuery
Vue 使用formData方式向后台发送数据的实现
2019/04/14 Javascript
jQuery实现文本显示一段时间后隐藏的方法分析
2019/06/20 jQuery
解决VueCil代理本地proxytable无效报错404的问题
2020/11/07 Javascript
EXTJS7实现点击拖拉选择文本
2020/12/17 Javascript
Python使用matplotlib简单绘图示例
2018/02/01 Python
浅谈Series和DataFrame中的sort_index方法
2018/06/07 Python
python一键去抖音视频水印工具
2018/09/14 Python
Python 点击指定位置验证码破解的实现代码
2019/09/11 Python
python飞机大战pygame碰撞检测实现方法分析
2019/12/17 Python
CSS3 icon font完全指南(CSS3 font 会取代icon图标)
2013/01/06 HTML / CSS
canvas实现图片马赛克的示例代码
2018/03/26 HTML / CSS
德国在线香料制造商:Gewürzland
2020/03/10 全球购物
学雷锋月活动总结
2014/04/25 职场文书
环保倡议书范文
2014/05/12 职场文书
社保缴纳证明申请书
2014/11/03 职场文书
员工年终考核评语
2014/12/31 职场文书
幼儿园辞职书
2015/02/26 职场文书
品质保证书格式
2015/02/28 职场文书
新闻稿怎么写
2015/07/18 职场文书
SpringBoot中HttpSessionListener的简单使用方式
2022/03/17 Java/Android
vue整合百度地图显示指定地点信息
2022/04/06 Vue.js