错误:如果else语句发送,则无法设置标题

虽然这似乎是一个非常普遍的问题 – 基于我读过的东西,我无法看到我的代码的问题。 下面你会看到,如果条件满足,我使用返回,所以我会认为它不会尝试设置标题与我的条件。 请看一下,让我知道如果有什么我在这里失踪:

// get user by id app.get('/api/users/:userId', function(req, res) { var userParam = req.params.userId; for (var i = 0; i < users.length; i++) { if (users[i].id === userParam) { return res.status(200).json({user: users[i]}); } else { res.sendStatus(404); } } }); 

问题是,除非请求的用户是用户数组中的第一个元素,否则在与后续元素匹配之前,您正在使用404进行响应。 有更好的方法来find一个数组匹配(见这里 ),但使用你的方法到目前为止:

 // get user by id app.get('/api/users/:userId', function(req, res) { var userParam = req.params.userId; for (var i = 0; i < users.length; i++) { if (users[i].id === userParam) { return res.status(200).json({user: users[i]}); } } // No match in loop res.sendStatus(404); });