Node express 在用户基础上更改静态文件夹

squ*_*dev 5 javascript node.js npm express

是否可以使用 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'))
})
Run Code Online (Sandbox Code Playgroud)

我想要完成的是允许用户拥有自己的“公共”目录来提供静态文件。目录结构类似于 /user/< hash >

jon*_*nny 2

认为我有一个解决方案给你!

app.get('/:user', function(req, res, next) {
    app.use('/', express.static(path.join(__dirname, 'public/' + req.params.user)));
    res.send('');
});
Run Code Online (Sandbox Code Playgroud)

为了解释一下,想象一下路径上的两个文件:

/__dirname/public/user1/userdata.text

/__dirname/public/user2/userdata.text

通过访问以下两个URL:

http://localhost:3000/user1/userdata.txt

http://localhost:3000/user2/userdata.txt

您将分别请求这两个不同的文件。如果该文件不存在,它会抛出404如您所料的信息!

希望这可以帮助。