json中的变量变了但是index.js输出的是旧的

编程入门 行业动态 更新时间:2024-10-03 12:25:03

json中的变量变了但是index.js输出<a href=https://www.elefans.com/category/jswz/34/1770679.html style=的是旧的"/>

json中的变量变了但是index.js输出的是旧的

interval = setInterval(function() {
  online = require("./../../server/oxide/data/online.json");
  if (online.ONLINE == -1)
  {
    client.user.setStatus(`dnd`);
    client.user.setActivity("server offline");
  }
  else if (online.ONLINE == 0)
  {
    client.user.setStatus(`idle`);
    client.user.setActivity("no one");
  }
  else
  {
    client.user.setStatus(`online`);
    client.user.setActivity(`Players ${online.ONLINE}/500`);
  }
  console.log(`update ${online.ONLINE}`)
}, 10000);

每10秒在线.ONLINE更新

index.js 仅在我重新启动 js 文件时更改变量,但我无法重新启动它。 smb 可以帮忙吗

回答如下:

在 Node.js 中,

require
在第一次调用后被缓存,因此每次调用它都不会再次从文件中读取。 (来源:https://nodejs/api/modules.html#modules_caching)

为了解决这个问题,您可以使用其他Node.js函数,例如

fs.readFileSync
方法每次需要从JSON文件中读取原始文件,示例如下:

const fs = require('fs');

interval = setInterval(function () {
  const raw = fs.readFileSync('./../../server/oxide/data/online.json', 'utf-8');
  online = JSON.parse(raw);

  if (online.ONLINE == -1) {
    client.user.setStatus(`dnd`);
    client.user.setActivity('server offline');
  } else if (online.ONLINE == 0) {
    client.user.setStatus(`idle`);
    client.user.setActivity('no one');
  } else {
    client.user.setStatus(`online`);
    client.user.setActivity(`Players ${online.ONLINE}/500`);
  }
  console.log(`update ${online.ONLINE}`);
}, 10000);

fs.readFileSync
的第一个参数是文件的路径,而第二个参数用于编码。在大多数情况下使用
utf-8
是很重要的,以确保它支持您可能拥有的所有不同的文本编码/语言你的 JSON 文件)

更多推荐

json中的变量变了但是index.js输出的是旧的

本文发布于:2024-05-30 13:17:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1770536.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:的是   量变   json   js   index

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!