gpt4 book ai didi

node.js - nodejs express读取文件并异步返回响应

转载 作者:搜寻专家 更新时间:2023-10-31 23:04:49 25 4
gpt4 key购买 nike

我想做这样的事情

 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 被同步调用,而文件读取是异步的。对此有巧妙的解决方案吗?我是否被迫实际传递 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 函数的回调被调用。然后你可以生成数据,然后你可以发送响应。研究异步回调是如何工作的,因为这里你的代码并没有像你想象的那样从上到下执行。因为匿名函数“记住”它们周围作用域中的所有变量,所以您可以在该回调中使用 res。

关于node.js - nodejs express读取文件并异步返回响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31738712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com