【问题标题】:Why fs.writeFile is not working on GitHub?为什么 fs.writeFile 在 GitHub 上不起作用?
【发布时间】:2020-09-13 23:54:56
【问题描述】:

我有自己的带有经济系统的机器人。有一个轮盘赌“!翻转”用户可以下注他的硬币,它们存储在(../coins.json)当我从计算机(节点index.js)启动机器人时一切正常,机器人本身几秒钟后更改用户的余额,但是当我将其上传到 GitHub 并运行时,机器人一开始工作正常,余额被保存,但重新启动后一切都消失了,它没有写入 coin.json 文件,我该怎么办解决这个问题?

const Discord = require("discord.js");
let coins = require("../coins.json");
const fs = require('fs');
const prefix = "!";

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

  let prefix = "!";

  if (!message.content.startsWith(prefix)) return;

  let random = Math.floor(Math.random() * 100) + 1;

  let bal = parseInt(coins[message.author.id].coins); // Convert user's balance to number type

  if (bal < parseInt(args[0])) return message.channel.send(`${message.author}, Not enough coins!`)

  if (random >= 70) {

  let win = new Discord.MessageEmbed()
  .setDescription(`${message.author}`)
  .addField(`You Won! ????`, `Number: ${random}`)
  .setColor("GREEN")
  message.channel.send(win)

    coins[message.author.id] = {
      coins: parseInt(coins[message.author.id].coins) + parseInt(args[0])
    }
    fs.writeFile("../coins.json", JSON.stringify(coins), (err) => {
      if (err) console.log(err)
  })
  };

  if (random < 70) {

    let lose = new Discord.MessageEmbed()
    .setDescription(`${message.author}`)
    .addField(`You Lose! ????`, `Number: ${random}`)
    .setColor("#CB2E2E")
    message.channel.send(lose)

    coins[message.author.id] = {
      coins: parseInt(coins[message.author.id].coins) - parseInt(args[0])
    }
    fs.writeFile("../coins.json", JSON.stringify(coins), (err) => {
      if (err) console.log(err)
  })
  }
 };

module.exports.help = {
  name: "flip"
}

【问题讨论】:

    标签: node.js discord discord.js


    【解决方案1】:

    因为我还不能发表评论,所以我这样问你...... 你是如何从 Github 运行该项目的?由于 GitHub 不是 node.js 运行时,我认为您需要将您的应用程序部署到 Heroku 或 VPS 之类的地方。

    如果您使用 Github 操作执行此操作,则无法使用 node.js 文件系统编辑文件。您可以使用外部数据库执行此操作,但我不建议将您的数据库凭据上传到 Github。

    【讨论】:

    • 是的,我使用 heroku + GitHub,在 GitHub 中我存储了我的存储库,机器人运行良好,收费和退回硬币,但我想导出数据库 (coins.json),不heroku 已经保存了吗?据我了解,即使机器人这样做,Heroku 也无法更改 GitHub 上的文件,但是我可以做些什么来保存用户余额的值? @Puk
    猜你喜欢
    • 2022-06-13
    • 2023-01-13
    • 2023-02-23
    • 2018-03-17
    • 2020-06-04
    • 2016-11-12
    • 1970-01-01
    • 2016-08-23
    相关资源
    最近更新 更多