[英]Not able to read JSON file after writing to the same JSON file
我正在嘗試寫入一個 json 文件,在該文件寫入后我將再次重新讀取該文件。 但是,我的console.log(readJson());
當我嘗試重新讀取文件時顯示undefined
。 誰能建議我應該怎么做?
helper.js
const fs = require('fs')
const util = require('util');
const path = require('path')
const json_file = path.resolve(__dirname, "../json/metrics.json")
function readJson(){
fs.readFile(json_file,function(err,data){
if(err){
return console.error(err)
}
let iplist = data.toString()
iplist = JSON.parse(iplist)
let str = JSON.stringify(iplist)
return str
})
}
function writeJson(ipdetails){
fs.readFile(json_file,function(err,data){
if(err){
return console.error(err)
}
let iplist = data.toString()
iplist = JSON.parse(iplist)
iplist.table.push(ipdetails.data)
let str = JSON.stringify(iplist)
fs.writeFile(json_file,str,function(err){
if(err){
console.error(err);
}
console.log('returning readJson() below')
console.log(readJson());
})
})
}
module.exports = {
writeJson,
readJson
}
return str
在readFile
回調中,您應該像這樣使用 promises 或fs.readFileSync
:
function readJson() {
let data = fs.readFileSync(json_file)
let iplist = data.toString()
iplist = JSON.parse(iplist)
let str = JSON.stringify(iplist)
return str
}
異步方式有點難:
function readJson() {
new Promise((resolve, reject) =>
fs.readFile(json_file, type, (err, data) => {
let iplist = data.toString()
iplist = JSON.parse(iplist)
let str = JSON.stringify(iplist)
return err ? reject(err) : resolve(str);
})
);
}
你像這樣調用異步版本:
readJson().then((result) => {
console.log(result)
})
希望這會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.