如果用户未经过身份验证,我会尝试限制所有页面。
奇怪的是,当我调用登录页面时,我的中间件被调用了两次。
以下是我的代码
app.use((req, res, next) => {
if (req.session.user) {
res.session.user = req.session.user;
}
if (req.isAuthenticated() || req.path === '/' || req.path === '/login'){
console.log('inside next');
next()
}else{
console.log('inside redirect');
res.redirect('/')
}
});
app.get('/', (req, res) => {
console.log('inside /')
res.render('./login', {
css: ['login.css'],
js: ['login.js']
})
});
当我转到我的根页localhost:8000/
时,它会在控制台中打印出来
inside next
inside /
inside redirect
inside next
inside /
正如您在调用get('/')
后看到的那样,再次调用中间件来重定向页面。为什么是这样?如果删除中间件,/
只会被调用一次。
答案 0 :(得分:1)
我发现了为什么......
显然,Chrome最近添加了对源地图ESRI : Failed to parse source map
的支持由于源地图未包含在我的vendor
文件夹中,因此无法找到源地图并刷新页面。
所以从现在起复制bootstrap文件时要小心 - 使用css
文件复制源映射,使其不刷新两次