readFileSync不适用于我。我在设置为字符串之后尝试打印输入但是很奇怪

时间:2015-04-22 12:22:57

标签: javascript node.js readfile

我是Node.js的新手,我正在努力学习。我有一个简单的任务来执行以下操作: -read一个文件(提供购买第一个命令行参数)。 - 打印文件中的行数。 - 我正在使用readFileSync方法。

代码正在运行,但输出很奇怪。我尝试打印每个语句,我认为问题在于读取数据。谁能告诉我我错在哪里?

    function numLines(){
      var fs = require('fs');
      var num = 0;
      var contents = fs.readFileSync(process.argv[0]);
      console.log(contents.toString());

      return num;
    }

忽略return语句,请关注readFileSync。在打印内容时,打印的文本中充满了奇怪的字符,就像读取错误一样

1 个答案:

答案 0 :(得分:7)

  var contents = fs.readFileSync(process.argv[0]);
实际上,

process.argv[0]不是传递给脚本的第一个参数。这是命令node。第二项是您的脚本的文件名,并传递给node,假设您将其称为node myscript.js somefile.txt。您需要获取第三个​​项:process.argv[2]

请参阅https://nodejs.org/api/process.html#process_process_argv