问题描述
刚刚开始学习Node,我今天正在复习课上的练习。不记得使用fs编写新文件时“ process.argv [2]”指的是什么。我想[0]指的是“节点”,[1]指的是您正在创建的文件的名称(“ log.txt”),那么此代码在[2]指的是什么?这段代码可以正常工作,并输出“ Success!”,顺便说一句,只是为了更好地理解它。谢谢!
var fs = require("fs");
fs.writeFile("log.txt",process.argv[2],function(err) {
if (err) {
return console.log(err);
}
console.log("Success!");
});
解决方法
这些是在使用node启动应用程序时提供的参数。它从2开始,因为前两个参数是命令和文件。
process.argv = ['node','yourscript.js',...]
这是UNIX和C语言早期的保留,这是一个非常有用的保留。
如果通过在命令行中说出此命令来运行nodejs程序
node whatever whatelse
然后process.argv[2]
包含值whatelse
。命令行中的单词最终以从零开始编号的argv
数组结束。
在您的示例中,看起来您将使用
node myprogram.js whatever
将单词“ whatever”写入名为log.txt
的文件中。为什么?您显示的代码在process.argv[2]
的第二个参数中提到了fs.writeFile()
。该参数提供您要写入文件的信息。