我有一个使用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。
答案 0 :(得分:1)
尝试从路由处理程序提供静态文件,使其成为查询用户名的动态:
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");
}
});
答案 1 :(得分:0)
我认为你不能用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");
}
});