在此Node fs写入函数中,“ process.argv [2]”是什么意思?

问题描述

刚刚开始学习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()。该参数提供您要写入文件的信息。