你将编写一些脚本,它们用 process.argv 接收参数、读取环境变量,并返回一个退出码。
在 Kodokon 中打开本课你已经在使用命令行程序了:node、npm、git 等等。每一个都接受参数,也就是跟在它名字后面输入的那些词,它们会改变程序的行为。让我们来写一个自己的。Node 暴露了全局对象 process,它描述当前正在运行的程序,你在 process.version 那里遇到过它。它的属性 process.argv 是一个数组,包含:索引 0 处是 Node 的路径;索引 1 处是你脚本的路径;从索引 2 开始,则是用户实际输入的参数。
console.log(process.argv);
const args = process.argv.slice(2);
console.log("Your arguments:", args);第二个信息来源:环境变量。它们是系统在启动程序时提供给程序的名字/值对。它们用于配置:一个秘密的 API 密钥、调试模式、数据库地址等等。你可以在 process.env 对象里读取它们。一个不存在的变量是 undefined:请始终为它准备一个默认值,比如用 ?? 运算符。
const level = process.env.LOG_LEVEL ?? "info";
console.log("Log level:", level);LOG_LEVEL=debug node config.js当一个程序结束时,它会向系统返回一个退出码:一个概括运行情况的数字。通用约定:0 表示 "成功",任何其他值都表示出错了,其他工具和脚本正是靠检查这个数字来判断一切是否正常。process.exit(1) 会立即以退出码 1 停止脚本。此外,请用 console.error 来输出错误消息:它会写到错误输出(stderr),这是一个和正常输出分开的通道。让我们把这一切整合到一个完整的脚本里。
const name = process.argv[2];
if (!name) {
console.error("Usage: node greet.js <name>");
process.exit(1);
}
console.log(`Hello, ${name}!`);