全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-15 8 分钟 ✍️ juanwangdev

Node.js process 进程对象

process 是 Node.js 的全局对象,提供当前 Node.js 进程的信息和控制能力。

进程信息

JavaScript
// 进程 ID
console.log(process.pid);     // 进程 ID
console.log(process.ppid);    // 父进程 ID
console.log(process.title);   // 进程标题
console.log(process.version); // Node.js 版本
console.log(process.arch);    // CPU 架构: x64, arm
console.log(process.platform);// 操作系统: win32, linux, darwin

环境变量

JavaScript
// 获取所有环境变量
console.log(process.env);

// 获取特定环境变量
console.log(process.env.NODE_ENV);
console.log(process.env.PATH);
console.log(process.env.HOME);

// 设置环境变量
process.env.MY_VAR = 'value';

// 判断运行环境
if (process.env.NODE_ENV === 'production') {
  console.log('生产环境');
}

命令行参数

JavaScript
// process.argv 包含命令行参数
console.log(process.argv);
// [node路径, 脚本路径, 参数1, 参数2, ...]

// 解析参数
const args = process.argv.slice(2);
console.log(args);

// 使用 minimist 解析命名参数
// node app.js --name=Tom --age=25

工作目录

JavaScript
// 当前工作目录
console.log(process.cwd()); // /home/user/project

// 切换工作目录
process.chdir('/tmp');
console.log(process.cwd()); // /tmp

标准输入输出

JavaScript
// 标准输出
process.stdout.write('Hello\n');

// 标准错误
process.stderr.write('Error\n');

// 标准输入
process.stdin.on('data', (data) => {
  console.log('输入:', data.toString().trim());
});

进程退出

JavaScript
// 正常退出
process.exit(0);

// 异常退出
process.exit(1);

// 退出前执行
process.on('exit', (code) => {
  console.log(`进程退出,退出码: ${code}`);
});

事件监听

JavaScript
// 未捕获异常
process.on('uncaughtException', (err) => {
  console.error('未捕获异常:', err);
  process.exit(1);
});

// 未处理的 Promise 拒绝
process.on('unhandledRejection', (reason) => {
  console.error('未处理的 Promise 拒绝:', reason);
});

// 信号处理
process.on('SIGINT', () => {
  console.log('收到 SIGINT 信号 (Ctrl+C)');
  process.exit(0);
});

process.nextTick

JavaScript
// 在当前操作完成后立即执行
process.nextTick(() => {
  console.log('nextTick');
});

console.log('同步代码');

// 输出顺序: 同步代码 -> nextTick

process.nextTick 优先级高于 Promise.then,在当前事件循环阶段结束后立即执行。

要点总结

  • process.env 访问环境变量,process.argv 获取命令行参数
  • process.cwd() 获取当前工作目录
  • process.exit() 终止进程,process.on() 监听进程事件
  • process.nextTick() 优先级最高的微任务
  • 使用 process.on('uncaughtException') 捕获全局异常

📝 发现内容有误?点击此处直接编辑

← 上一篇 Node.js module 模块对象
下一篇 → Node.js require 模块加载函数
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库