gpt4 book ai didi

node.js - Node js,使用 exec 启动 Discord.js 机器人,无法正常运行

转载 作者:太空宇宙 更新时间:2023-11-04 01:57:54 25 4
gpt4 key购买 nike

假设我有 2 个文件,a.js 和 b.js,其中 a.js 是一个简单的 node.js 脚本,它调用 b.js,它是一个 Discord.js 机器人。

a.js

const { exec } = require(‘child_process’);
exec(‘node b.js’, (err,stdout,stderr) => {
console.log(‘err: ‘ + err + ‘\n stdout: ‘ + stdout + ‘\n stderr:‘ + stderr);
});

b.js

const Discord = require(‘discord.js’);
const fs = require(‘fs’);
var bot = new Discord.Client();
var token;
fs.readFile(‘token.txt’,(err,data) => {
if(err){console.log(err); process.exit(0);}
token = data;
});
bot.on(‘ready’,()=>{console.log(‘ready’);});
bot.on(‘message’, message => {
if(message.content == ‘ping’){
message.channel.send(‘pong’);
}
});
bot.login(token);

当我运行 a.js 时,唯一的输出是

err:
stdout:
stderr:

a.js 然后终止,看起来好像 b.js 从未运行过。我想知道为什么会发生这种情况以及原因。另外,如果有人想知道我为什么要这样做,我将其作为一个更大脚本的一部分,并将问题归结为这一点。主要部分是 b.js 必须从 exec 运行。我在 Windows 10 中使用最新版本的 Node 和 Discord.js 运行此程序。谢谢

最佳答案

我又尝试了一次,但是当完成完整的不和谐机器人设置后......

我的a.js看起来像这样......

const { spawn } = require('child_process');

const child = spawn('node',['b.js']);

process.stdin.pipe(child.stdin);

child.stdout.on('data', (data) => {
console.log(`child stdout:\n${data}`);
});

child.stderr.on('data', (data) => {
console.log(`child stderr:\n${data}`);
});

我的 b.js 看起来像这样...

const Discord = require('discord.js');
const fs = require('fs');
var bot = new Discord.Client();
var token;
fs.readFile('token.txt', {encoding: 'utf8'}, (err,token) => {
if(err){console.log(err); process.exit(0);}

bot.on('ready',()=>{
console.log('ready');
});
bot.on('message', message => {
if(message.content == 'ping'){
message.channel.send('pong');
}
});

bot.login(token);
});

b.js 上,我必须以 utf8 读取文件,并确保我的 token.txt 文件没有尾随、前导空格。另外,我将机器人登录代码移至 token 文件读取的回调中。

下面的输出示例...

enter image description here

我在不和谐上发送了 ping 来看看它是否有效,机器人用 pong 响应。

截图如下。 enter image description here

我希望这段代码对您有用,请告诉我...

关于node.js - Node js,使用 exec 启动 Discord.js 机器人,无法正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47210575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com