我有一个browsers.json
文件,我希望在每次部署时进行更新。
万一更新文件的请求失败了,我想保持原始文件不变。
是这样做的好方法,还是有“更好的实践”方法?
var http = require('http');
var fs = require('fs');
var url = 'http://saucelabs.com/rest/v1/info/browsers/webdriver';
if (fs.existsSync('browsers.json')){
var browsers = JSON.parse(fs.readFileSync('browsers.json'));
}
http.get(url, function (res) {
var data = '';
res.on('data', function (chunk) {
data += chunk;
});
res.on('end', function () {
var obj = JSON.parse(data);
fs.writeFile('browsers.json', data, function (err) {
if (err) throw err;
});
})
}).on("error", function () {
fs.writeFile('browsers.json', browsers, function (err) {
if (err) throw err;
});
});
最佳答案
我会说,如果出错,您不应该写任何东西。我还要说,通常最好将响应直接传递到文件上的可写流,这样就不会在内存中缓冲整个内容。 (不过,如果文件很小,那可能没什么大不了的。)
最后,一旦拥有数据,别忘了重新解析和加载数据。
关于javascript - NodeJS请求和错误处理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22254031/