Javascript 使用ReadStream和Lazy将大文件读入Node.js时出现意外的文件结尾 背景

Javascript 使用ReadStream和Lazy将大文件读入Node.js时出现意外的文件结尾 背景,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我正在协助一个项目,分析关于2013年NCAA男子篮球锦标赛比赛的推特对话量。我们使用简单的Node.js请求和方法收集推文,并将响应保存在纯文本文件中。到目前为止,我们已经收集了大约1500万条推特,占据了大约 现在我们正试图处理这些tweet,并使用另一个简单的Node.js脚本将相关信息(uid、时间戳、文本和语言)上传到MongoDB数据库中,该脚本中还显示了我们收集的一个非常小的原始tweet示例。一旦tweet被加载到数据库中,我们将对它们进行过滤和聚合,以导出我们需要的信息 问题

我正在协助一个项目,分析关于2013年NCAA男子篮球锦标赛比赛的推特对话量。我们使用简单的Node.js请求和方法收集推文,并将响应保存在纯文本文件中。到目前为止,我们已经收集了大约1500万条推特,占据了大约

现在我们正试图处理这些tweet,并使用另一个简单的Node.js脚本将相关信息(uid、时间戳、文本和语言)上传到MongoDB数据库中,该脚本中还显示了我们收集的一个非常小的原始tweet示例。一旦tweet被加载到数据库中,我们将对它们进行过滤和聚合,以导出我们需要的信息

问题 所以问题是:当在数据库中保存tweets的脚本运行时,它会抛出一个意外的文件结束错误并终止。我已经验证了ReadStream和Lazy的一个实例已经初始化,当脚本尝试对每一行执行操作并将该行解析为有效的JSON对象时,问题似乎正在发生

有没有想过为什么会发生这种情况或者如何解决

堆栈跟踪示例

未定义:1
3、“索引”:[3,10]}],“偏好”:假,“转发”:假,“过滤级别”:“低”
^
SyntaxError:输入意外结束
at Object.parse(本机)
在/home/ubuntu/ncaa/savetodb.js:31:34
在懒惰。(/home/ubuntu/ncaa/node_modules/lazy/lazy.js:91:13)
在懒惰。(/home/ubuntu/ncaa/node_modules/lazy/lazy.js:73:19)
在Lazy.EventEmitter.emit(events.js:95:17)
在yieldTo(/home/ubuntu/ncaa/node_modules/lazy/lazy.js:181:18)
在功能上。(/home/ubuntu/ncaa/node_modules/lazy/lazy.js:219:25)
在懒惰。(/home/ubuntu/ncaa/node_modules/lazy/lazy.js:187:21)
在Lazy.EventEmitter.emit(events.js:95:17)
在ReadStream。(/home/ubuntu/ncaa/node_modules/lazy/lazy.js:50:22)

您可以发布任何堆栈跟踪吗?@robertklep抱歉,花了这么长时间,我已经旅行了一段时间。没问题:)当示例数据中的任何行被损坏时,我可以重现该问题:截断,或者当它包含嵌入的换行符时。如果输入损坏,您可以将其清理或放置
重试。。。catch…
around
JSON.parse
捕获错误。
undefined:1
3","indices":[3,10]}]},"favorited":false,"retweeted":false,"filter_level":"low
                                                                          ^
SyntaxError: Unexpected end of input
    at Object.parse (native)
    at /home/ubuntu/ncaa/savetodb.js:31:34
    at Lazy.<anonymous> (/home/ubuntu/ncaa/node_modules/lazy/lazy.js:91:13)
    at Lazy.<anonymous> (/home/ubuntu/ncaa/node_modules/lazy/lazy.js:73:19)
    at Lazy.EventEmitter.emit (events.js:95:17)
    at yieldTo (/home/ubuntu/ncaa/node_modules/lazy/lazy.js:181:18)
    at Function.<anonymous> (/home/ubuntu/ncaa/node_modules/lazy/lazy.js:219:25)
    at Lazy.<anonymous> (/home/ubuntu/ncaa/node_modules/lazy/lazy.js:187:21)
    at Lazy.EventEmitter.emit (events.js:95:17)
    at ReadStream.<anonymous> (/home/ubuntu/ncaa/node_modules/lazy/lazy.js:50:22)