NodeJS Создание функции сбоя - PullRequest
0 голосов
/ 30 июня 2018

Я НОВЫЙ для nodejs. Я использовал один маршрут, чтобы сделать две вставки одновременно в две таблицы. Я использую Mongo DB в качестве базы данных. Вот мой код

router.post('/register',(req, res)=>{
    const newBook = new books({
        bkName: req.body.bkName,
        numberofCopies: req.body.numberofCopies,
        Author: req.body.Author,
        Edition: req.body.Edition,
        AddingDate: req.body.AddingDate
    });
    const numberofbooks = new bookNumber({
        bkName: req.body.bkName,
        numberofCopies: req.body.numberofCopies
    });
    numberofbooks.save((err,doc)=>{
        if(!err){ res.send(doc); }
        else{ console.log('Number of books adding error:'+JSON.stringify(err, undefined, 2)); }
    });
    newBook.save((err, doc)=>{
        if(!err){ res.send(doc); }
        else{console.log('Books in book Save:'+JSON.stringify(err, undefined, 2));}
    });

    //console.log(numberofbooks);
});

Я видел несколько более ранних сообщений. Но я не нашел такой проблемы, как эта. Когда я запускаю этот маршрут в моем почтальоне, он добавит данные в обе таблицы, и мой сервер узлов потерпит крах. Поэтому я не могу делать другие вещи после вставки. Это ошибка, которую я получил на своем сервере.

Ошибка: невозможно установить заголовки после их отправки.

at validateHeader (_http_outgoing.js:491:11)
at ServerResponse.setHeader (_http_outgoing.js:498:3)

Я не могу этого понять, я ищу ответ в течение последних двух часов. Спасибо за ваше драгоценное время.

1 Ответ

0 голосов
/ 30 июня 2018

Вы не можете отправить более одного ответа на запрос. Ошибка будет выдана в newBook.save() (или numberofbooks.save() - в зависимости от того, что завершится вторым), поскольку вы пытаетесь отправить второй ответ на тот же запрос после того, как вы уже отправили один в другом save(). Не совсем понятно, что вы действительно хотите отправить, в настоящее время возвращаются два разных документа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...