我们有带护照的express.js路线。我注意到了下一个承诺的使用,但是如果我删除它,我的测试无论如何都能正常工作,对于409和201的响应。任何想法是否真的需要在这样的背景下:
exports.signUp = (req, res, next) ->
passport.authenticate('local-signup', (err, user, next) ->
if err
res.status(409).send
status: 'Conflict'
error: 'Benutzername bereits vergeben'
type: 'warning'
return
else if user != false and user != ''
token = jwt.sign({ user: user }, secret.secretToken, expiresInMinutes: 60 * 60)
res.status(201).send
status: 'Created'
error: 'Benutzer erstellt'
type: 'success'
token: token
user: user
return
) req, res, next
return
注意:这是coffeescript
答案 0 :(得分:2)
如果您未在传递给passport.authenticate
的回调中使用它,则可以将其删除。但是,passport.authenticate
本身可能需要它来处理某些情况(这是猜测,我没有挖掘Passport代码以确保)。
所以你可以将代码重写为:
exports.signUp = (req, res, next) ->
passport.authenticate('local-signup', (err, user) ->
...
) req, res, next
return
这并没有什么改进。
作为警告:您的代码会留下一些未发送响应的情况,即如果user
为false或为空字符串(在这种情况下,您只需return
而不是发送响应)