Я в основном использовал среду Hapi для создания RESTful API.Для этого проекта я использую Express, и я немного растерялся из-за того, почему это происходит.
Когда я тестирую конечную точку POST с помощью Postman, первый запрос в порядке, но я получаю ошибку, когдаЯ делаю второй запрос.
Error: Can't set headers after they are sent.
Код обработчика маршрута приведен ниже:
const login = (req, res) => {
const validation = authScema.loginPayload.validate(req.body)
if (validation.error) {
return res.status(400).send(validation.error.details[0].message)
}
const { email, password } = req.body
firebase
.auth()
.signInWithEmailAndPassword(email, password)
.catch(error => {
// Handle Errors here.
if (error) {
return res.status(400).send('Invalid login details.')
}
})
firebase.auth().onAuthStateChanged(user => {
if (user) {
const userObject = {
email: user.email,
uid: user.uid
}
const token = jwt.sign(userObject, secret)
return res.status(200).send(token)
}
})
}
Я не понимаю, почему заголовки отправляются повторно, так как в каждую ветку я возвращаюсь.Это должно было выйти из функции, верно?