如何在express的中间件中使用request请求接口数据或进行数据库查询

发布于 2022-09-05 07:35:12 字数 740 浏览 11 评论 0

如何在express的中间件中使用request请求接口数据或进行数据库查询?
例如有个 url = "http://127.0.0.1/shops/××××/"
我想在express中使用中间件先给每一个shop路径的请求添加一些公共的数据,并传递给后面的处理函数,

app.use('/shops', function (req, res, next) {
    res.locals["title"] = "New Page Title";  
    next();
});

这样每一个经过shops的请求都会被添加一个title,但是如果我的数据是从通过request异步请求后端接口,或者使用mysql请求, 这时,数据都从对应的callback中返回,无法进行res.locals赋值。
app.use('/shops', function (req, res, next) {

res.locals["title"] = "New Page Title";  
var shop_url = "http://127.0.0.1/api/shop/";
request(shop_url, function (err, resonse, body) {
    res.locals.info = body;   //异步赋值失败
})
console.log(res.locals.info); // undefined
next();

});
应该怎么做才能获得callback中的的数据呢/?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

人生百味 2022-09-12 07:35:12

把next()放到request方法的回调函数里

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文