如何在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中的的数据呢/?
FFIVE
相关分类