我有一个用Node.js编写的Web服务器,我想使用一个特定的文件夹启动。我不确定如何在JavaScript中访问参数。我正在像这样运行节点:
$ node server.js folder
这server.js
是我的服务器代码。Node.js帮助说这是可能的:
$ node -h
Usage: node [options] script.js [arguments]
如何在JavaScript中访问这些参数?不知何故,我无法在网上找到此信息。
我有一个用Node.js编写的Web服务器,我想使用一个特定的文件夹启动。我不确定如何在JavaScript中访问参数。我正在像这样运行节点:
$ node server.js folder
这server.js
是我的服务器代码。Node.js帮助说这是可能的:
$ node -h
Usage: node [options] script.js [arguments]
如何在JavaScript中访问这些参数?不知何故,我无法在网上找到此信息。
如节点文档中所述,process.argv属性返回一个数组,其中包含启动Node.js进程时传递的命令行参数。
例如,假设以下脚本用于process-args.js:
// print process.argv
process.argv.forEach((val, index) => {
console.log(`${index}: ${val}`);
});
以以下方式启动Node.js进程:
$ node process-args.js one two=three four
将生成输出:
0: /usr/local/bin/node
1: /Users/mjr/work/node/process-args.js
2: one
3: two=three
4: four
process.argv
是您的朋友,Node JS本身支持捕获命令行args。请参见以下示例:
process.argv.forEach((val, index) => {
console.log(`${index}: ${val}`);
})
尽管上述答案很完美,并且有人已经建议过,但是使用该软件包确实非常容易。这是一个很好的程序包,它使传递参数到命令行变得非常容易。
npm i yargs
const yargs = require("yargs");
const argv = yargs.argv;
console.log(argv);
请访问https://yargs.js.org/了解更多信息。
使用nconf https://github.com/flatiron/nconf之类的集中方式管理配置可能是一个好主意
它可以帮助您使用配置文件,环境变量,命令行参数。
对于定义选项,操作和参数非常有用。它还会为您生成帮助页面。
如果您喜欢回调方法,则非常适合从用户那里获取输入。
如果您喜欢生成器方法,则非常适合从用户那里获取输入。
这里有几个很好的答案,但这似乎非常复杂。这与bash脚本访问参数值的方式非常相似,并且正如MooGoo所指出的那样,它已经在node.js中提供了标准。(只是使它对于node.js的新手来说是可以理解的)
例:
$ node yourscript.js banana monkey
var program_name = process.argv[0]; //value will be "node"
var script_path = process.argv[1]; //value will be "yourscript.js"
var first_value = process.argv[2]; //value will be "banana"
var second_value = process.argv[3]; //value will be "monkey"
为了使参数像常规的javascript函数一样标准化,我在node.js shell脚本中执行以下操作:
var args = process.argv.slice(2);
请注意,第一个arg通常是nodejs的路径,第二个arg是您正在执行的脚本的位置。
将命令行参数传递给Node.js程序的最佳方法是使用命令行界面(CLI)
您可以使用一个漂亮的npm模块,称为nodejs-cli。
如果您想创建一个没有依赖性的程序,我想在Github上创建一个程序,如果您想查看它,它实际上非常简单易用,请单击此处。