【问题标题】:Can't set headers after they are sent. Express JS发送后无法设置标题。快递JS
【发布时间】:2017-07-09 11:19:10
【问题描述】:

帮帮我:(,我找不到错误的解决方案,我尝试在回复之前使用 return 它不起作用

this my code

function isAuthenticated(req, res, next) {
var getToken = req.cookies.token;
var getUrl = req.originalUrl;
console.log(getToken)    
if(getToken == undefined) {
    res.redirect('/login')
    next()
} else {
    console.log('success')
    next()
}
next() }

router.get('/login', isAuthenticated, auth.login);
router.get('/logout', isAuthenticated, auth.logout);
router.post('/logging', auth.prosesLogin);

【问题讨论】:

  • 你有我的代码的解决方案吗?
  • else { } 之后和if 条件下删除next()。仅当身份验证成功(即调用next())时,您才必须重定向到端点。否则,您必须重定向到/login。 (这里是小提琴:jsfiddle.net/h0e2hsau/1
  • 但是等待它仍然是循环的,。 GET /auth/logout 并且,我的错误不再出现,但仍然没有重定向到 /auth/login url :(
  • @Subiyantoro 从GET @ /login 端点中删除isAuthenticated。没有必要验证人是否还没有登录,对吧?

标签: node.js express middleware


【解决方案1】:

似乎在你的函数中,函数参数的顺序是错误的。

(err, res) 改为(req, res)(err, req, res, next)。希望这会有所帮助。

【讨论】:

    【解决方案2】:

    next() 替换为return false

    【讨论】:

      猜你喜欢
      • 2015-02-23
      • 1970-01-01
      • 2017-01-18
      • 1970-01-01
      • 1970-01-01
      • 2012-11-13
      • 2017-09-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多