目前,我正在开发一个项目(出于组织原因)需要有一些不同的 javascript 文件,并且我不知道如何在外部引用 javascript 文件。我正在制作一个不和谐的机器人,所以我不知道是否有办法在机器人运行访问文档时访问 html 文档。这些位于同一个文件中
app.js
const { Client, IntentsBitField } = require('discord.js');
const token = "token_here";
import {sendMessage} from './test.js';
const client = new Client({
intents: [
IntentsBitField.Flags.Guilds,
IntentsBitField.Flags.GuildMembers,
IntentsBitField.Flags.GuildMessages,
IntentsBitField.Flags.MessageContent
]
});
client.on('ready', (clientTemp) => {
console.log(`${clientTemp.user.tag} is online`);
});
client.on('messageCreate', (message) => {
//if (message.content === 'say ping') {
// message.channel.send('!ping');
//}
//if (message.content == 'pong!') {
// message.channel.send('Message Received');
//}
sendMessage(message);
})
client.login(token);
测试.js
export function sendMessage(message) {
if (message.content === 'say ping') {
message.channel.send('!ping');
}
}
我尝试使用模块方式设置要导出的函数,然后发送主脚本来导入该函数,但出现错误“SyntaxError:无法在模块外部使用导入语句”,然后立即关闭。我对 javascript 还很陌生,并且一直在尝试我可以使用的东西。有解决办法吗?我习惯了带有命名空间和类的 C#,所以这对我来说是不同的语法。
上面显示了我的第一次尝试以及我正在尝试做的事情。第二次尝试改变了
import { sendMessage } from './test.js';
到
import { sendMessage } from 'test.js';
结果相同。
首先要导出函数:
const sendMessage = (message) => {
if (message.content === 'say ping') {
message.channel.send('!ping');
}
}
module.exports = {
sendMessage,
//other functions
}
然后您可以从顶部访问它:
const { sendMessage } = require("path-to-file")
或在您处理活动的地点:
require("path-to-file").sendMessage(message)
如果主代码放在project文件夹下,其他文件放在project/handlers文件夹下,你会写“./handlers/FILENAME”,最后不能有.js