0
我知道这被问了很多次,但我找不到任何代码,所以我添加了我的输出。请看一下。使用NODE以JSON格式保存数据
app.put('/hotel/save', function(req, res) {
var fileToSave = 'savedHotelDetails.txt';
res.send('Booking Id '+guid());
res.status(200);
var arr = [];
var k;
fs.readFile(fileToSave, 'utf-8', function(err, data) {
if(err) {
k = [];
} else {
arr.push(data);
var obj = JSON.parse(req.query.params);
console.log(obj);
k = arr.push(obj);
//JSON.stringify(k);
//console.log(arr);
fs.appendFile(fileToSave, JSON.stringify(arr),'utf8');
}
})
});
这给了我作为
["",{"hotelId":"IM50003"}]["[\"\",{\"hotelId\":\"IM50003\"}]",{"hotelId":"IB50002"}]["[\"\",{\"hotelId\":\"IM50003\"}][\"[\\\"\\\",{\\\"hotelId\\\":\\\"IM50003\\\"}]\",{\"hotelId\":\"IB50002\"}]",{"hotelId":"IB50002"}]
首先为什么这种输出的输出? Secondaly,我的目标是让来自新数据前结束通话,并希望它获得追加像
[{"ID": "IM5004"},{"ID": "IM5005"},{"ID": "IM5006"}]
上述数据应该是后三个电话。
任何 “干净” 的方式来做到这一点? –
'json'只是一个序列化技术,如果你想要持久化然后尝试存储在数据库(mongo,json-file-store)中或者在你的情况下使用'.csv'格式,这样你就可以简单地追加额外的记录性能损失很大。参考这个http://stackoverflow.com/questions/24011343/nodejs-append-inside-json-file-in-array-format – shadowfox