Почему Express. js Ошибка броска перенаправления [ERR_HTTP_HEADERS_SENT] в Node.js приложении MongoDB? - PullRequest
0 голосов
/ 08 марта 2020

В настоящее время я использую Node.js, Express. js и MongoDB для создания базового c REST API. Я пытаюсь перенаправить на другую страницу после выполнения запроса, но моя консоль выдает ошибку в заголовке. Вот мой код:

    app.post('/', (req, res) => {
  MongoClient.connect(process.env.DB_CONNECTION, { useUnifiedTopology: true, useNewUrlParser: true }, function (err, db) {
    if (err) throw err;
    const dbo = db.db("mydb");
    const messageTable = dbo.collection("messages");
    let myobj = { message: req.body.message };
    console.log(myobj)
    messageTable.insertOne(myobj, function (err, res) {
      if (err) throw err;
      console.log("1 document inserted");
      db.close();
    });
  });
  //Get message
  MongoClient.connect(process.env.DB_CONNECTION, { useUnifiedTopology: true, useNewUrlParser: true }, function (err, db) {
    const messageTable = db.db('mydb').collection('messages');

    var myPromise = () => {
      return new Promise((resolve, reject) => {
        messageTable.aggregate(
          [{ $sample: { size: 1 } }]
        ).toArray((err, data) => {
          err
            ? reject(err)
            : resolve(data[0]);
        });
      });
    }
    //Step 2: async promise handler
    var callMyPromise = async () => {
      var result = await (myPromise());
      //anything here is executed after result is resolved
      return result;
    };

    //Step 3: make the call
    callMyPromise().then(function (result) {
      db.close();
      res.json(result);
      res.redirect('/');
      });

    });

  });  //end mongo client

Код только выдает ошибки, когда я включаю res.redirect('/');.

Также я не знаю, имеет ли это какое-либо отношение к этому, но вот мой запрос на получение:

    app.get('/', (req, res) => {
  fs.readFile('./views/home.html', function (err, data) {
    res.writeHead(200, { 'Content-Type': 'text/html' });
    res.write(data);
    res.end();
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...