nodejs表示读取文件并asynchronous返回响应

我想要做这样的事情

router.get('/getforecast/:stationShortCode', function(req,res){ var stationShortCode = req.params.stationShortCode; var fs = require('fs'); fs.readFile("data/wx.hourly.txt", "utf8", function(err, data){ if(err) throw err; //do operation on data that generates say resultArray; return resultArray; }); res.send(resultArray); }); 

显然, res.send被同步调用,而文件读取asynchronous。 有没有一个聪明的解决办法呢? 我是不是真的通过了res

 fs.readFile("data/wx.hourly.txt", "utf8", function(err, data){ if(err) throw err; var resultArray = //do operation on data that generates say resultArray; res.send(resultArray); }); 

您的文件被读取。 您传递给readFile函数的callback被调用。 然后你可以生成数据,然后你可以发送响应。 看看asynchronouscallback是如何工作的,因为在这里你的代码并不像你想的那样从上到下执行。 而且因为匿名函数“记住”周围范围内的所有variables,所以可以在callback中使用res。