我正在使用快递。我正在动态添加路由(路由配置存储在mongodb中)
const app = require('express')();
const mongoose = require('mongoose');
var proxyHandler = {
paths: [ '/demoservice' ],
proxy: true,
baseUrl: 'http://test/demo',
name: 'demoservice',
_id: ""
}
app.use(proxyHandler.paths,function(req,res){
// do stuff
});
如果我想进行mongodb调用并拉出路由配置,然后执行app.use
这是获取路由列表的函数,但这是异步的,如果我循环结果并尝试为每条路径执行app.use()
function getAllActiveRoutes(cb){
routes.find({active:true},function(err,result){
if(err){
return cb(err)
} else {
return cb(null,result)
** this is not working
result.forEach(function(r){
app.use(r.paths,function(req,res){
res.render(something)
})})
}
})
}
答案 0 :(得分:0)
试试这个
routes.find({active:true},function(err,result){
if(err){
return cb(err)
} else {
return cb(null, function() {
result.forEach(function(r){
app.use(r.paths,function(req,res){
res.render(something);
});
});
});
}
})