node之process模块

本文介绍了Node.js中的process模块,包括获取当前工作目录、文件绝对路径、触发警告、处理环境变量、读取命令行参数、改变工作目录以及控制台的数据输入与接收。示例代码展示了如何使用process模块的各种功能,例如emitWarning()用于发出警告,process.env用于获取环境变量,process.argv用于获取命令行参数,以及如何改变工作目录和接收用户输入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

process是什么

process是nodejs中的全局对象,不需要require进来,就可以直接使用,获取进程信息操作进程

获取当前工作目录

process.cwd() 或

process.env.pwd

__dirname

输出结果如图:
在这里插入图片描述

获取文件绝对位置

console.log(__filename)

触发警告

 参数格式:process.emitWarning(warning[, options])

Emit a warning with a code and additional detail
触发一个带有唯一标识符与附加详细信息的警告

process.emitWarning('Something happened!', {
  code: 'MY_WARNING',
  detail: 'This is some additional information'
});

触发结果

(node:56338) [MY_WARNING] Warning: Something happened!
This is some additional information

在上面例子中, process.emitWarning()内部生成了一个Error对象,并传递给process.on('warning')事件。

环境变量

通过process.env获取环境变量信息
获取到的是带有各种环境信息的对象,如当前路径,path,主路径等,如获取当前路径:process.env.pwd, 与process.cwd()作用一样
当然,我们也可以自定义各种环境变量, 如:

process.env.myname = "jianfeng"

则执行process.env.myname 理所当然的输出jianfeng,这样我们可以自定义一些信息便于全局获取,非常有用,如开发中,我们常定义process.env.NODE_ENV定义当前是开发模式还是生产模式

删除环境变量可通过:

delete process.env.属性名

Windows 操作系统上,环境变量不区分大小写

获取命令行参数

process.argv

process.argv 属性返回一个数组,其中包含当启动 Node.js 进程时传入的命令行参数。 第一个元素是 process.execPath, 即命令首个参数的原始地址,如node, npm, git等的原始地址, 第二个元素将是正在执行的 JavaScript 文件的路径。 其余元素将是任何其他命令行参数。
如执行命令:

$ node process.js  ck=1

通过console.log(process.argv)输出内容为:

[ 'C:\\Program Files\\nodejs\\node.exe',
  'C:\\Users\\kejianfeng\\Projects\\node-learning\\process.js',
  'ck=1' ]

通过process.argv[2]可获取最后的命令参数 ck=1

process.argv0

process.argv0 属性保存当 Node.js 启动时传入的 argv[0] 的原始值的只读副本
如:

$ node process.js ck=1
> process.argv[0]
'C:\\Program Files\\nodejs\\node.exe'
> process.argv0
'node.exe'

改变工作目录

如现在的工作目录是

kejianfeng@crazylife MINGW64 ~/Projects/node-learning 

在执行过程中需要切换到某目录下继续执行,如进入到node-learning目录下的dir2文件执行,则只需要这样做:

process.chdir('./dir2')

再打印一下当前目录:

C:\Users\kejianfeng\Projects\node-learning\dir2

符合预期

控制台数据输入和接收

process.stdout进行提示输入
process.stdin监听输入并处理

process.stdout.write("请输入你的名字:");
process.stdin.on('data', (input) => {
	console.log("名字为" + input);
})

执行情况如图
在这里插入图片描述
我们可以对用户输入进行操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值