NodeJS请求和error handling

我有一个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; }); }); 

我会说错误的,你不应该写任何东西。 我也会说,通常最好是将响应直接传递给文件上的可写入stream,这样就不会缓冲内存中的所有内容。 (虽然,如果你的文件很小,这可能不会太重要。)

最后,不要忘记一旦拥有它就重新parsing和加载数据。