2

为了避免每次切换表情符号时都必须更改每个文件中的每个表情符号,我决定emojis.json从那里放置并调用表情符号。

表情符号.json

{
    "loading": "<a:loading:847653387343626301>",
    "pressf": "<:pressf:862166705911758909>"
}

Exampleping.js

const emoji = require('../emojis.json')

module.exports = {
    name: 'ping',
    execute(message, args) {
        message.channel.send(`${emoji.loading}Pong.`)
    }
}

这是正确的方法吗?我对新的/更好的想法持开放态度。顺便说一句,错误:code: 'MODULE_NOT_FOUND',

4

2 回答 2

2

嗯,你的方法在一定程度上是正确的。唯一的问题是您导入了json文件而不是js文件,因此它会引发错误。

实现此目的的正确方法是emojis.js使用导出的 json 对象的文件module.exports

// emojis.js
module.exports = {
    loading: "<a:loading:847653387343626301>",
    pressf: "<:pressf:862166705911758909>"
};


// Exampleping.js
const emojis = require('../../emojis.js')
module.exports = {
    name: 'ping',
    execute(message, args) {
        message.channel.send(`${emoji.loading}Pong.`)
    }
}
于 2021-08-29T08:03:41.233 回答
1

您的代码是干净的,只是您的导入语句没有引用该emojis.json文件。更清楚地说,脚本无法找到该文件,这意味着 emojis.json 与 exampleping.js ( ) 不在同一目录中require('./emojis.js')

根据我在 Discord bot 开发方面的经验,我相信您放置emojis.json在根目录中,而exampleping.js放置在通常名为“commands”的目录中。话虽如此,您所需要的只是通过将另一个添加.require().

      const emojis = require('../emojis.js');
      //instead of ./emojis.json

请参阅HTML 文件路径

于 2021-08-29T08:12:54.167 回答