【问题标题】:NodeJS Count the number of lines in a text fileNodeJS计算文本文件中的行数
【发布时间】:2016-10-28 03:09:15
【问题描述】:

我正在尝试使用 Node.js 计算文本文件中的行数并将该数字设置为变量。我找到了解决方案here,但在尝试使用代码时出现此错误。

fs.js:540
  binding.open(pathModule._makeLong(path),
          ^

TypeError: path must be a string
    at TypeError (native)
    at Object.fs.open (fs.js:540:11)
    at ReadStream.open (fs.js:1673:6)
    at new ReadStream (fs.js:1660:10)
    at Object.fs.createReadStream (fs.js:1608:10)
    at Object.<anonymous> (C:\Users\Aidan\Desktop\Javascript\test.js:3:15)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)

据我了解,这是说 fs 模块本身存在错误。这不可能是对的。也许我在其中运行 Node.JS 的环境不允许此代码正确执行?顺便说一句,我正在运行 Windows 10 64 位。此代码的固定版本或全新的解决方案将起作用。非常感谢!

【问题讨论】:

    标签: javascript node.js


    【解决方案1】:

    你的文件是一个数组,所以你必须通过 myFile[0] 来引用它。另外,检查您是否正在运行最新版本的节点(6.x)

    【讨论】:

    • 为什么需要运行node 6.x?
    • 节点 6 中的某些功能发生了变化,所以也许他们已经从 v4 => v6 更改了它:) 这是changelog
    • 我现在正在使用最新版本的节点,但我仍然收到错误消息。这一次,不是说路径必须是字符串,而是说路径必须是字符串或缓冲区。另外,我会在哪里引用我的文件?我对节点很满意,但我也很新。
    • 用新的 v6 方法改变你的方法调用,应该在我提供的链接中:)
    • 好的。它现在似乎可以工作了,除非我把我的文件路径放在这里:require('fs').createReadStream("./file.txt"[2]),它试图读取一个名为 f 的文件,而不是文件。文本文件。如果我将文件重命名为 f 没有文件扩展名,它工作正常。
    猜你喜欢
    • 2011-03-29
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-28
    • 1970-01-01
    相关资源
    最近更新 更多