动态express.static()文件夹路径
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态express.static()文件夹路径相关的知识,希望对你有一定的参考价值。
我有一个使用express.static访问一些用户信息的应用程序,路由逻辑是这样的:
app.get('/principal',function(req,res,next){
if(req.query.user=='admin'){
next();
}else{
res.send("not allowed");
}
});
app.use('/principal',express.static('/_site'));
但现在我需要它给所有用户,所以应该是这样的:
var username = '';
app.get('/principal',function(req,res,next){
if(req.query.user){
username = req.query.user;
next();
}else{
res.send("not allowed");
}
});
app.use('/principal',express.static(username+'/_site'));
我有一个每个用户名的文件夹,我的express.static()一直在读取用户名var empty。
答案
尝试从路由处理程序提供静态文件,使其成为查询用户名的动态:
app.get('/principal',function(req,res,next){
if(req.query.user){
// serve static files for usename
app.use('/principal', express.static(username +'/_site'));
res.send("allowed");
}else{
res.send("not allowed");
}
});
另一答案
我不认为你可以用express.static
做到这一点。但是,你可以,
app.get('/principal', function(req, res){
if(req.query.user){
const username = req.query.user;
const path = `${username}/boo.js`
res.sendfile(path, {root: '/_site'});
}else{
res.send("not allowed");
}
});
以上是关于动态express.static()文件夹路径的主要内容,如果未能解决你的问题,请参考以下文章
关于app.use('/static', express.static(path.join(__dirname, 'public')))的理解
express.static 和 CSS 文件的 MIME 类型错误