如何将数据从node js存储到JSON文件。如果该json文件已经有一些数据。 如何在追加模式下将数据添加到json文件...?
答案 0 :(得分:-1)
此模块将帮助您将数据存储到JSON文件(创建新文件)并进行更新:
const fs = require('fs');
var lib = {};
// Create new json file
lib.create = function(dir,file,data,callback){
// Open the file for writing
fs.open(dir+'/'+file+'.json', 'wx', function(err, fileDescriptor){
if(!err && fileDescriptor){
// Convert data to string
var stringData = JSON.stringify(data);
// Write to file and close it
fs.writeFile(fileDescriptor, stringData,function(err){
if(!err){
fs.close(fileDescriptor,function(err){
if(!err){
callback(false);
} else {
callback('Error closing new file');
}
});
} else {
callback('Error writing to new file');
}
});
} else {
callback('Could not create new file, it may already exist');
}
});
};
// Update data in a json file
lib.update = function(dir,file,data,callback){
// Open the file for writing
fs.open(dir+'/'+file+'.json', 'r+', function(err, fileDescriptor){
if(!err && fileDescriptor){
// Convert data to string
var stringData = JSON.stringify(data);
// Truncate the file
fs.ftruncate(fileDescriptor,function(err){
if(!err){
// Write to file and close it
fs.writeFile(fileDescriptor, stringData,function(err){
if(!err){
fs.close(fileDescriptor,function(err){
if(!err){
callback(false);
} else {
callback('Error closing existing file');
}
});
} else {
callback('Error writing to existing file');
}
});
} else {
callback('Error truncating file');
}
});
} else {
callback('Could not open file for updating, it may not exist yet');
}
});
};
module.exports = lib;
将上述代码存储到新的js文件中,然后将其作为data.js例如保存在包含js文件的同一文件夹中,然后将其导入到您的代码文件中以供使用:
const data = require('./data.js')
// Store JSON to file Example:
var jData = {'x':1, 'y':2};
data.create('./data','test1',jData ,function(err){ if(!err){console.log('file created successfully');} else{console.log(err)} });
// Update same JSON file Example:
jData.y = 5;
data.update('./data','test1',jData ,function(err){ if(!err){console.log('file updated successfully');} else{console.log(err)} });
注意:您将需要创建“ data”文件夹,其中将包含json文件或将dir参数值更改为任何现有文件夹。