使用express.static来服务每个用户的内容
我想设置一个Express路由来提供静态内容,从依赖于用户的目录。 身份validation是每个会话; login的用户将其ID存储为req.session.user_id
。 对于这些用户,我想提供用户的私有静态内容,它存储在__dirname + '/private/' + req.session.user_id
。 这是我最好的尝试,这是行不通的:
app.use('/static', function (req, res) { if (res.session.user_id != undefined) { // this is wrong express.static(__dirname + '/private/' + req.session.user_id); } });
什么是最简单的方法来实现我想要的?
既然你需要有一个dynamic的过程来find要提供的文件,这不是静态的,试图使用static
方法是无稽之谈。
你最好的拍摄是这样的:
app.use('/static*', function (req, res) { if (res.session.user_id != undefined) { var url = req.url.replace('/static', ''); // Serve the asked file directly fs.createReadStream(__dirname + ' /private' + req.session.user_id + url).pipe(res); } });
- 使用查询来searchtask_name时,通过id查找function已经实现
- Express – 在中间件function之间传递数据的更好模式
- Node-MySQL – Query()方法中的转义与Mysql.Escape()/ Mysql.EscapeId()
- 使用express.json而不是express.bodyparser
- Express4 + Socket.io 0.9:不同的客户端获得相同的非广播消息
- 请问express.js有可变长度参数吗?
- 使用范围保护API(oauth2orize,passport,express,Nodejs)
- ejs'部分没有定义'
- 如何在Mongoose中build立条件查询?