我正在研究一个nodejs程序,在程序中,我需要能够检查JSON文件内的变量,该文件将通过不同的程序切换。我开始在if语句上工作来弄清楚它,我很快发现nodejs不喜欢它,当我在代码运行后切换变量时。我运行的代码看起来有点像这样:
"wait for event"{
"code once event happens"
var jsonfile = require('./jsonfile.json')
console.log(jsonfile.variable)}
我将触发事件,手动更改json,然后再次触发它输出如下所示
true
true
意味着它不会读取json文件后,我改变它
我试着强迫它're require' JSON文件在上面的代码,但没有工作,我试着运行它在一个新的nodejs脚本,看看它是否因为一个语句,它可能是内部的代码看起来像这样
while (true){
var file = require('file.json')
console.log(file.variable)}
i将改变变量,输出将继续输出true
或false
不工作
Geshode写了一条评论说:Instead of using require, have you tried reading the json file with the native file system, like fs.readFile? Or a library like fs-extra?
工作我把它作为答案,这样别人就能看到,这里有一些代码示例
读取json文件:
fs.readFile('pathtojson', 'utf8', function(err, data){
let student = JSON.parse(data);
// Display the file content
console.log(student.avariableinfile);
})
如果编辑正确,应该在json文件中输出一个变量
在不设置为json对象的情况下读取
fs.readFile('pathtofile', 'utf8', function(err, data){
// Display the file content
console.log(data);
});
注意:这些样本之间的唯一区别是第二个不使它成为一个json文件,它会做同样的事情,如果你把console.log(data)
中的data
替换为student.varable
,并在上面添加JSON.parse(data)