2

比如我想根据用户访问二级域名,定向到对应目录:

app.use(express.static(path.join(__dirname, '/public')));

至:

app.use(express.static(path.join(__dirname, '/'+ domain +'/public')));

4

1 回答 1

2

假设您在文件夹中有一个名为“foo.png”的文件[domain]/public。使用app.use(express.static(path.join(__dirname, '/'+domain+'/public')));将使该文件可供http://localhost/foo.png所有人使用。根据我对您问题的理解,这并不是您真正想要的。

你应该寻找res.sendfile并做类似的事情

app.get('/:username/:file', function(req, res){
    res.sendfile(path.join(__dirname, req.params.username, req.params.file));
});

这样,您还可以使用中间件添加一些安全性,以确保用户无法访问其他用户的文件。

如果您真的不介意安全问题,您可以简单地将所有用户的文件夹添加到公用文件夹中(您可以为该文件夹选择您想要的任何名称)并且只使用app.use(express.static(path.join(__dirname, '/public')));.

这样您就可以使用类似的方式访问文件http://localhost/[username]/foo.png

于 2013-04-22T23:31:18.683 回答