JavaScript (Node.js) 仅将字符串内容解释为 Linux 节点上的对象
JavaScript (Node.js) interprets String contents as an Object on Linux Node only
我的 Discord.io 机器人有问题。我试图让它在 Linux 服务器上运行,但是,Linux 版本的 Node.js 不断将字符串的内容解释为单独的对象,导致以下 TypeError:
TypeError: Object IT'S ALIVE has no method 'startsWith'
at DiscordClient.bot.getMessages.channel (/root/Davixxabots/Daru/Darubot.js:182:17)
at DiscordClient.emit (events.js:106:17)
at DiscordClient.handleWSMessage (/root/Davixxabots/Daru/node_modules/discord.io/lib/index.js:1049:11)
at WebSocket.emit (events.js:98:17)
at Receiver.ontext (/root/Davixxabots/Daru/node_modules/ws/lib/WebSocket.js:841:10)
at /root/Davixxabots/Daru/node_modules/ws/lib/Receiver.js:536:18
at Receiver.applyExtensions (/root/Davixxabots/Daru/node_modules/ws/lib/Receiver.js:371:5)
at /root/Davixxabots/Daru/node_modules/ws/lib/Receiver.js:508:14
at Receiver.flush (/root/Davixxabots/Daru/node_modules/ws/lib/Receiver.js:347:3)
at Receiver.opcodes.1.finish (/root/Davixxabots/Daru/node_modules/ws/lib/Receiver.js:541:12)
以下是带有上述错误的代码:
if (message.toString().startsWith("/gamechange ") && userID == config.ownerID) {
//messageSplit = message.split("/gamechange");
var messageSplit = message.substring(message.indexOf("/gamechange ")+ 11);
if (messageSplit == "" || messageSplit == " ") {
bot.setPresence({ game:""});
}
bot.setPresence({
game: messageSplit
});
deleteCmdMessage(channelID, message);
log("Changed game to: '" " + messageSplit + ".");
}
它在Windows上运行良好。
提前感谢您提供的任何帮助!
"...不断将字符串的内容解释为一个单独的对象,"不知道你的意思,但由于你的字符串没有 startsWith() 方法,看起来你只是在使用旧版本的 node。
正如@squint在他们的评论中指出的那样,这个问题是Node.js的过时版本。
- 你能解释一下这个阶乘函数是如何工作的吗?
- 你能解释一下为什么这个javascript不正确吗
- Javascript 如何强制 string.replace 不将我的字符串解释为正则表达式
- Appcelerator Titanium:在运行时下载并解释JavaScript代码
- 注入的HTML仅在Dom中解释为字符串
- 对象.创建解释
- 无法解释的JavaScript行为-错误
- 使用ng选项,我如何筛选准确解释给定值的内容
- 在以下情况下解释 >= 和 <= 运算符的行为
- 当路径有空格时,NodeJS fs.writeFile在linux上失败
- TypeScript解释了各种文件扩展名
- 有人能向我解释一下我犯的一个错误吗
- 请为javascript解释MVC中的VC
- 对这种与document.domain和CORS相关的不一致行为的解释是什么
- 解释分号的简单方法
- if条件中的递归混淆,JS如何解释“;真/假”;条件
- 在linux上使用软件包减少grunt的大小.文件路径对Jenkins来说太长
- 解释javascript中的+var和-var一元运算符
- 有人能解释一下evaluate()和dragAndDrop()在下面的角度测试代码中调用了什么吗
- JavaScript (Node.js) 仅将字符串内容解释为 Linux 节点上的对象