expressjs可以动态设置静态目录吗?
现在好像是服务启动的时候就是设置静态目录,我的目录是在数据库里面查询出来的,所以想在执行查询后设置,这样写好像是没效果
app.use( token.urlVerify, function(req, res, next){
app.use(express.static(path.join(__dirname, 'views/' + global.theme)));
next();
});
7 回复
app对象找不到吧
@i5ting 对象是可以找到的就是设置了没有效果 自豪地采用 CNodeJS ionic
@wtwei 那你用类似的http-server呢
实在不行,用http模块写一个也不用多久
我试了一下,动态调用app.use的确是不行的。
回调里app.use的时候,由于中间件还没入栈,所以不会生效,第二次访问的时候也不会生效,因为你的第一个static永远会拦截静态资源请求,相当于每来一个请求,你就新加一个中间件,正确的做法应该是修改原来的中间件,但是这样做有什么意义,增加程序负担?服务器启动的时候改变可以用环境变量啊
router.use(path, function mounted_app(req, res, next) {
var orig = req.app;
fn.handle(req, res, function (err) {
req.__proto__ = orig.request;
res.__proto__ = orig.response;
next(err);
});
});
```
@dlutwuwei 嗯,换了一种方式 自豪地采用 CNodeJS ionic