【问题标题】:Read file and write file JSON读取文件和写入文件 JSON
【发布时间】:2020-05-13 05:18:06
【问题描述】:

在此,我正在尝试创建一个计数器,每次有人访问我的网站时,都会从 views.json 文件中读取变量,将一个添加到数字中,然后使用新数字更新 .json .但是,当我在 repl.it 项目中对其进行测试时,我收到一条错误消息

ReferenceError: writeFileSync is not defined
    at /home/runner/hit-counter/index.js:6:1
    at Script.runInContext (vm.js:133:20)
    at Object.<anonymous> (/run_dir/interp.js:156:20)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)

我不知道这意味着什么,如果您知道,请告诉我以及我可以如何解决它。

回复项目链接:https://hit-counter.cohense.repl.run/

JavaScript (ES6)

const fs = require('fs');
let views = fs.readFileSync('views.json');
views = JSON.parse(views);
views.total++;
let data = JSON.stringify(views, null, 2);
writeFileSync("views.json", data, finished);
function finished(err) {
  if (views = JSON.parse(views)) {
  console.log("Your view has been accounted for!")
} else {
  console.error("Error occured please reload the page =(")
}
};

JSON

{
   "totalViews": 1
}

【问题讨论】:

  • 您的方法面临的确切问题是什么?
  • 您是否需要帮助或对您的实施有疑问?
  • 首先,您需要对您的问题做出清晰明确的陈述。此外,提供尽可能多的上下文总是好的。例如,在这里您指定了一个 Javascript 文件,但您没有指定哪个版本(例如 ES6),这只是一个示例,说明如何添加一些有用的上下文。见这里stackoverflow.com/help/how-to-ask

标签: node.js json readfile fs writefile


【解决方案1】:

你可以这样做,只是修复了一些错误。

哦,你应该使用writeFileSync,避免文件不会同时被编辑。

问题是,为什么不使用数据库?它速度更快,并且可以修复并发写入。

var fs = require('fs')
var data = fs.readFileSync('views.json')
var views = JSON.parse(data);
console.log(views);

views.total = views.total + 1;

var data = JSON.stringify(views, null, 2)
writeFileSync("views.json", data, ()=>{
 console.log("Your View Has Been Accounted For!")
})

【讨论】:

  • 应该是 fs.writeFileSync(...) 而不是 writeFileSync(...)
【解决方案2】:

我发现我做错了什么我没有使用 fs。

writeFileSync("views.json", data, finished);

当我需要做的时候

fs.writeFileSync("views.json", data[,finished]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-06
    • 1970-01-01
    相关资源
    最近更新 更多