gpt4 book ai didi

javascript - 将函数的响应发送到 expressjs 中的路由

转载 作者:行者123 更新时间:2023-11-30 09:58:22 24 4
gpt4 key购买 nike

我正在尝试从 api 沿着我在快速服务器上的路线返回 JSON 数据。我对nodejs如何处理这种操作有点困惑。我在同一个文件中同时有一个函数和一个路由,路由有效是因为我得到了返回的 View ,以及我想要的数据在控制台中。路线和方法如下所示:

function getData() {
request(url, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body) // Show the HTML for the Google homepage.
return response.body;
};
});
};

/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'About', data: getData() });
});

我想在对路线的响应中使用来自 getData() 的数据。我认为这样做可以,但它只会将数据打印到控制台,我看不出问题所在。

最佳答案

由于 http 请求的异步性质,这根本不可能。您必须改为重组它以进行回调。

function getData(callback) {
request(url, function (error, response, body) {
if (error) {
return callback(error);
}
if (response.statusCode == 200) {
console.log(body) // Show the HTML for the Google homepage.
//return response.body;
callback(null, response.body);
} else {
callback(response.statusCode);
}
});
};

/* GET home page. */
router.get('/', function(req, res, next) {
getData(function (err, data) {
if (err) {
return next(err);
}
res.render('index', { title: 'About', data: data });
});
});

关于javascript - 将函数的响应发送到 expressjs 中的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32830628/

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