是否可以使用node和express中间件执行类似的操作?
app.use('/',express.static('public'))
app.get('/public', function() {
app.use('/',express.static('public'))
})
app.get('/public2', function() {
app.use('/',express.static('public2'))
})
我想要完成的是允许用户拥有自己的“公共”目录来提供静态文件。目录结构类似于/ user /<哈希>
答案 0 :(得分:1)
想想我有一个解决方案!
app.get('/:user', function(req, res, next) {
app.use('/', express.static(path.join(__dirname, 'public/' + req.params.user)));
res.send('');
});
要解释一下,想象一下路径上的两个文件:
/__dirname/public/user1/userdata.text
/__dirname/public/user2/userdata.text
访问以下两个网址:
http://localhost:3000/user1/userdata.txt
http://localhost:3000/user2/userdata.txt
您将分别请求这两个不同的文件。如果该文件不存在,则会像您期望的那样抛出404
!
希望这有帮助。