Ошибка: невозможно установить заголовки после их отправки клиенту (с помощью следующего) - PullRequest
0 голосов
/ 27 января 2019

Я пытаюсь сделать несколько запросов к базе данных и проверить некоторые данные. Если некоторые условия не совпадают, это должно создать ошибку и перейти к следующему (err).

Проблема в том, что она отправляет мне сообщение об ошибке, но пытается продолжить. Поэтому я получаю сообщение об ошибке в моем приложении node.js.

Purchase.findAndCount({where: {fk_product: productId, fk_buyer: req.decoded.id}}).then((numPurchases) => {
    // product purchased?
    if (numPurchases.count < 1) {
        const errNotBought = new Error("you did not buy this product");
        errNotBought.status = 403;
        return next(errNotBought); // <--- it should break up here
    }
}).then(() => {
    res.send({status: true, data: 'product'}) // <-- stacktrace point this line
})

Ошибка: Ошибка необработанного отклонения [ERR_HTTP_HEADERS_SENT]: Невозможно установить заголовки после их отправки клиенту

1 Ответ

0 голосов
/ 27 января 2019

return возвращается только из текущей функции обратного вызова, это никак не останавливает цепочку обещаний.Вы ищете

Purchase.findAndCount({where: {fk_product: productId, fk_buyer: req.decoded.id}}).then(numPurchases => {
    // product purchased?
    if (numPurchases.count < 1) {
        const errNotBought = new Error("you did not buy this product");
        errNotBought.status = 403;
        next(errNotBought); // <--- it should break up here
    } else {
       res.send({status: true, data: 'product'});
    }
});
...