Node.js更新客户端可访问的JSON文件

初学者的问题,因为我是networking编程新手。 我正在使用MEAN堆栈并在服务器中写入JSON文件,以便为所有连接的客户端提供一些天气信息。

我正在使用node-schedule库每小时更新一次JSON文件。 如果客户端正在试图同时访问文件数据,那么从服务器不断更新文件是否会导致并发性问题?

下面的代码片段:

server.js

function updateWeatherFile() { var weather = require('weather-js'); var w = ""; weather.find({search: weatherSearch, degreeType: 'C'}, function(err, result) { if(err) console.log(err); w = JSON.stringify(result, null, 2); fs.writeFile('public/weather.json', w, function(err) { if(err) { console.log(err); } }); }); } if(scheduleWeather) { var schedule = require('node-schedule'); var sequence = '1 * * * *'; // cron string to specify first minute of every hour var j = schedule.scheduleJob(sequence, function(){ updateWeatherFile(); console.log('weather is updated to public/weather.json at ' + new Date()); }); } else { updateWeatherFile(); } 

client_sample.js

 // get the current weather from the server $http.get('weather.json').then(function(response) { console.log(response['data'][0]['current']); vm.weather = response['data'][0]["current"].skytext; vm.temperature = response['data'][0]["current"].temperature; }); 

NodeJs是单线程环境。

但是,要读取和写入文件节点启动外部进程,并最终可以访问文件同时读取和写入。 在这种情况下,并发不是由Node处理,而是由Operational System处理。

如果您认为这种并发性可能会损害您的程序,请考虑使用一个locking文件,并在此处进行解释和说明。