【问题标题】:NodeJS: 'toString()' failed when require a large JSON fileNodeJS:“toString()”在需要大型 JSON 文件时失败
【发布时间】:2017-05-31 15:32:45
【问题描述】:

我正在尝试在 Node + Express 上加载一个非常大的 JSON 文件(360 Mb),但下面的行返回此错误。那我应该怎么处理呢?

var emails = require("../fake_IO/cleaned_data_lang.json");

错误:

Error: 'toString()' failed
at Buffer.toString (buffer.js:495:11)
at Object.fs.readFileSync (fs.js:552:33)
at Object.Module._extensions..json (module.js:585:20)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at loadEmails (C:\Users\me\Workspace\myProj\rules_handler\rules-ctrl.js:22:16)
at exports.executeRules (C:\Users\me\Workspace\myProj\rules_handler\rules-ctrl.js:12:51)

【问题讨论】:

  • 遇到同样的问题。你最终解决了这个问题吗?
  • 以上是节点可以处理的文件大小。这是某种“错误”。 256mb 是 V8 中字符串的限制

标签: javascript json node.js express


【解决方案1】:

尝试使用 noded fs fs.createReadStream() 而不是直接 require 文件。 我在某处找到了关于它的评论,试一试。 #here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-06
    • 2014-04-01
    • 1970-01-01
    • 2020-03-24
    相关资源
    最近更新 更多