express - 是否可以将 app.use 放在 app.get 中
问题描述
app.get('/game/', function(req, res) {
if (req.session.user) {
app.use(express.static(__dirname + '/game'));
res.sendFile(__dirname + '/game/index.html');
}
else {
res.send('not logged in ');
}
})
像在这段代码中那样将 app.use 放入 app.get 中是否合法?它按预期工作,但我想知道它是否合法。
解决方案
我建议使用两个不同的中间件功能来分离两个不同的问题 - 身份验证和静态资源服务:
app.get('/game/', ensureAuthenticated, express.static(__dirname + '/game'), sendGameIndex);
function ensureAuthenticated(req, res, next) {
if (req.session.user) {
next();
} else {
res.send('not logged in ');
}
}
function sendGameIndex(req, res) {
res.sendFile(__dirname + '/game/index.html');
}
推荐阅读
- java - 透明的 EditText Android Studio
- java - scala 2.12 中的 Future 问题
- javascript - 如何在 AngularJS 中使用智能表创建扩展行?
- string - Elixir,如何从字符串转换为 Ecto.Date?
- android - 无法解决方法 getDownloadUrl()
- javascript - 如何遍历字符串,每次向数组添加 1 个额外字符
- ios - 尽管在 App Store Connect 中只选择了英语,但我的 iOS 应用程序仍显示多种语言
- f# - 简单的 FParsec 列表示例
- python - python - 如何使用numpy.where()和python修复“TypeError:&:'list'和'list'不支持的操作数类型”?
- apache - 如何使用 Apache 重定向到正确的域?