Node.js - 命令行选项



任何 JavaScript 文件(扩展名为 .js)都可以从命令提示符执行,将其用作节点可执行文件的命令行选项。

PS D:\nodejs> node hello.js

您可以通过运行节点来调用Node.js REPL,而无需任何选项。

PS D:\nodejs> node
>

此外,在节点命令行中可以使用许多选项。要获取可用的命令行选项,请使用 --help

PS D:\nodejs> node --help

一些常用的命令行选项(有时也称为开关)如下 -

显示版本

PS D:\nodejs> node -v
v20.9.0
PS D:\nodejs> node --version
v20.9.0

评估脚本


PS D:\nodejs> node --eval "console.log(123)"
123
PS D:\nodejs> node -e "console.log(123)"
123

显示帮助


PS D:\nodejs> node -h
PS D:\nodejs> node –help

启动 REPL


PS D:\nodejs> node -i
PS D:\nodejs> node –interactive

负载模块


PS D:\nodejs> node -r "http"
PS D:\nodejs> node –require "http"

您可以将参数传递给要从命令行执行的脚本。参数存储在数组 process.argv 中。数组中的第 0 个元素是 nide 可执行文件,第一个元素是 javascript 文件,然后是传递的参数。

将以下脚本另存为 你好.js 并从命令行运行它,从命令行向它传递一个字符串参数。


const args = process.argv;

console.log(args);	

const name = args[2];

console.log("Hello,", name);

在终端中,输入

PS D:\nodejs> node hello.js qikepucom
[ 'C:\\nodejs\\node.exe', 'D:\\nodejs\\a.js', 'qikepucom' ]
Hello, qikepucom

您还可以在 Node.js 中接受来自命令行的输入。Node.js 从版本 7 开始,就提供了用于此目的的 readline 模块。createInterface() 方法有助于设置来自可读流的输入,例如 process.stdin 流,在执行 Node.js 程序期间,该流是终端输入,一次一行。

将以下代码另存为 你好.js


const readline = require('readline').createInterface({
	 	input: process.stdin,
	 	output: process.stdout,
});
readline.question(`What's your name?`, name => {
	 	console.log(`Hi ${name}!`);
	 	readline.close();
});

question() 方法显示第一个参数(问题)并等待用户输入。一旦按下 enter,它就会调用回调函数。

从命令行运行。节点运行时等待用户输入,然后在控制台上回显输出。

PS D:\nodejs> node a.js
What's your name?qikepucom
Hi qikepucom!

您还可以从命令行设置环境变量。将值分配给节点可执行文件名称之前的一个或多个变量。

USER_ID=101 USER_NAME=admin node app.js

在脚本内部,环境变量可用作 process.env 对象的属性。


process.env.USER_ID; // "101"
process.env.USER_NAME; // "admin"