需要 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.0node 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 服务器崩溃

使用 Node.js/Sequelize 进行批量插入时 PostgreSQL 崩溃

Node.js 警报导致崩溃

如何在 Node.js 中解析包含“NaN”的 JSON 字符串

node.js 我需要能够创建一个全新的 JSON 文件

execl 崩溃 C++ node.js-addon