Узел UnhandledPromiseRejectionWarning при сохранении в MongoDb - PullRequest
0 голосов
/ 13 апреля 2020

Новое для узла - я пытаюсь сохранить некоторые из своих твитов из Twitter API в mon go с помощью пакета Twit.

Я подключился к mongodb через порт 27017 с помощью mon goose, и этот фрагмент кода, который я написал, похоже, сохраняет твиты в моей БД, однако, похоже, я получаю это предупреждение каждый раз, когда сохраняю документ:

(node:9991) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 8)

Вот мой код:

const Tweet = require('./app/models/tweet.model.js');
const dbConfig = require('./config/database.config.js');
const mongoose = require('mongoose');

mongoose.Promise = global.Promise;

mongoose.connect(dbConfig.url, {
    useNewUrlParser: true
}).then(() => {
    console.log("Successfully connected to the database");
}).catch(err => {
    console.log('Could not connect to the database. Exiting now...', err);
    process.exit();
});

var Twit = require("twit");

var config = require("./config/twitter.config");
var T = new Twit(config);


var params = {
  screen_name: "decade3uk",
  count: 2
};

T.get("statuses/user_timeline", params, gotData);

function gotData(err, data, response) {

  var tweets = data;

  for(var i=0;i<tweets.length;i++){

    const tweet = new Tweet({
      created_at:tweets[i].created_at,
      id_str:tweets[i].id_str,
      text:tweets[i].text
    });

    tweet.save()
        .then(entry => {
          response.send(entry);
        }).catch(err => {
          response.status(500).send({
            message: err.message || "Some error occurred while creating the Tweet."
          });
        });

  }

}

Как лучше всего избавиться от этой ошибки?

1 Ответ

1 голос
/ 13 апреля 2020

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

process.on('unhandledRejection', (reason, promise) => {
   console.log("Reason: ",reason,"promise: ",promise);
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...