保存语法和 JSON.parse 代码时出错

Posted

技术标签:

【中文标题】保存语法和 JSON.parse 代码时出错【英文标题】:Error while saving syntax, and JSON.parse code 【发布时间】:2019-11-14 17:03:36 【问题描述】:
const Discord = require('discord.js');
const bot = new Discord.Client();
let cofig = require('./botconfig.json');
let token = config.token;
let prefix = config.prefix;

bot.on('ready', () => 
    console.log(`Запустился бот $bot.user.username`);
);

bot.on('message', msg => 
    if (msg.content === 'ping') 
        msg.reply('Pong!');
    
);

bot.login(token);`

当我在频道中键入 ping 时,我的机器人应该通过 Pong! 回答。这是一个简单的 ping 测试,用于检查机器人是否还活着并且行为正确。但是,当我尝试使其工作时出现错误。

错误:

SyntaxError: C:\Users\mrakp\OneDrive\Рабочийстол\mamapapads\botconfig.json: Unexpected end of JSON input
    at JSON.parse (<anonymous>)
    at Object.Module._extensions..json (internal/modules/cjs/loader.js:801:27)
    at Module.load (internal/modules/cjs/loader.js:643:32)
    at Function.Module._load (internal/modules/cjs/loader.js:556:12)
    at Module.require (internal/modules/cjs/loader.js:683:19)
    at require (internal/modules/cjs/helpers.js:16:16)
    at Object.<anonymous> (C:\Users\mrakp\OneDrive\Рабочий стол\mamapapads\bot.js:3:13)
    at Module._compile (internal/modules/cjs/loader.js:776:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
    at Module.load (internal/modules/cjs/loader.js:643:32)

【问题讨论】:

你能添加你的 JSON 文件吗?特别是botconfig.json 【参考方案1】:

首先,你不能这样做 const cofig = require("./botconfig.json")

然后不要使用声明来获取令牌。 在您的情况下, bot.login(token) 实际上是 bot.login(cofig.token)

但你也可以这样做

const  token  = require("./botconfig.json")

//Rest of code

bot.login(token)

这将直接获取令牌,而不必使用声明来引用它。

【讨论】:

OP 已经将token 声明为config.token。解构赋值是一个很好的建议,但不能解决问题。该错误源于解析 JSON 文件(尚未与我们共享),因此任何使用该文件的 require() 语句都会引发相同的错误。

以上是关于保存语法和 JSON.parse 代码时出错的主要内容,如果未能解决你的问题,请参考以下文章

尝试将文件路径保存到数据库时出错

parse.JSON()报错是什么原因?

springmvc: JSON

保存模型时出错 - 意外的新令牌

在 CKModifyRecordsOperation 中保存 CKRecord 和 CKShare 时出错

通过 websocket 发送 JSON 时出错