如何在不使用html的情况下使用javascript引用外部javascript方法?

问题描述 投票:0回答:1

目前,我正在开发一个项目(出于组织原因)需要有一些不同的 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';
结果相同。

javascript syntax discord bots
1个回答
0
投票

首先要导出函数:

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

© www.soinside.com 2019 - 2024. All rights reserved.