需要 JSON 时 Node.js 崩溃
Posted
技术标签:
【中文标题】需要 JSON 时 Node.js 崩溃【英文标题】:Node.js crashing when requiring JSON 【发布时间】:2017-01-03 23:35:24 【问题描述】:我一直在尝试将一些变量移动到外部文件中,所以我决定创建一个 config.json
"username":"...",
"password":"...",
"identity_secret":"...",
"shared_secret":"...",
"hostname":"127.0.0.1",
"owner":"..."
然后将其作为模块需要
'use strict'
var ACCEPT = 0xf
var REPORT = 0xff
var DECLINE = 0xfff
var fs = require('fs')
var config = require('./config.json')
但每当我运行脚本时,我都会不断收到此错误
module.js:457
throw err;
^
Error: Cannot find module 'config.json'
at Function.Module._resolveFilename (module.js:455:15)
at Function.Module._load (module.js:403:25)
at Module.require (module.js:483:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/root/steam-bot/steam_bot.js:8:14)
at Module._compile (module.js:556:32)
at Object.Module._extensions..js (module.js:565:10)
at Module.load (module.js:473:32)
at tryModuleLoad (module.js:432:12)
at Function.Module._load (module.js:424:3)
我在node v6.4.0
和node bot.js
上
这是一个单文件脚本,所以我没有机会更改加载目录,而且两个文件确实在同一个目录中
在这个脚本工作时,导入似乎没有抛出错误
var fs = require('fs')
var config = require('./config.json')
console.log(config.username)
【问题讨论】:
你需要json的文件是在同一个目录吗? 您在require.js
中提供了错误的config.json
路径
任何提示如何重现您的问题?
这就是全部,因为这个要求是异步的,所以下面的任何东西都不会影响它
请告诉我们有关如何重现您遇到的错误的更多信息
【参考方案1】:
我查看了脚本的其余部分,发现还有一个正在解析的 polldata.json,它是由我正在使用的库生成的。
由于某些奇怪的原因,这是不恰当的抛出
Error: Cannot find module 'config.json'
【讨论】:
【参考方案2】:您收到该错误有两个可能的原因。 1)您的 JSON 文件与您的脚本不在同一目录中,或者 2)您使用的是旧版本的 Node.js(0.5 之前)。确保您的主脚本和 JSON 文件位于同一目录中。此外,如果您不想更新 Node.js,您仍然可以像这样包含 JSON 文件:
var imported = JSON.parse(require('fs').readFileSync('.\\config.json') + '');
【讨论】:
他使用v6.4.0他提到过 @UnknownDeveloper 我知道,但我也在为遇到同样问题的未来用户写这篇文章。也许我的回答可以帮助他们。 哦,好主意! 这两种原因都不是 @tolunlade 如果这两种情况都不是您的情况,您需要提供有关您的问题的更多信息,并让我们知道如何重现您的错误,否则我只能说这些。以上是关于需要 JSON 时 Node.js 崩溃的主要内容,如果未能解决你的问题,请参考以下文章
使用 Node.js/Sequelize 进行批量插入时 PostgreSQL 崩溃