首页 > 解决方案 > 远程 fs.readFile 的问题?(在本地工作,但不在服务器上)

问题描述

下面的代码是用于 Discord 机器人的随机报价生成器,为了便于阅读,我的问题是在我的“开发机器”(发烧友/爱好者 btw)上代码运行良好,但是当上传到我的droplet (ubuntu 18.04, node v8.15) 它什么也不做,甚至没有返回错误。

const fs = require("fs");

exports.run = async (client, message, args) => { 

if (!args || args.length > 0) return message.reply("No need for multiple inputs");

fs.readFile("./quotes.json", "utf8", function(err, data) {
const obj = JSON.parse(data);
const result = obj[Math.floor(Math.random() * obj.length)];


message.channel.send(result.quote);
 });
 };

当代码位于液滴上并且我删除 fs.readfile 和 JSON.parse 块并将回复硬编码到message.channel.send("it works")其中时,确实会按预期返回消息,我希望有人关注事物并建议它是否是代码问题或可能是服务器配置问题。

下面的工作代码

tbh,我仍然不知道问题出在哪里,所以我在不到 10 分钟的时间内将它全部重写到一个新文件中.. 更改了一些变量名是我所做的一切,除了添加__dirname +

fs.readFile(__dirname + "/maiq-quotes.json", "utf8", function(err, data) {

const quotesobj = JSON.parse(data);

var quote = quotesobj[Math.floor(Math.random() * quotesobj.length)];

console.log(quote);
message.channel.send(quote.quote);

});

标签: node.jsjsonserverbotsdiscord.js

解决方案


没有错误有点奇怪,但是请仔细检查文件是否在正确的位置(如果找不到,则应该为此引发错误)并使用ls -l.


推荐阅读