Как включить ведение журнала консоли для ошибок MongoDB? - PullRequest
0 голосов
/ 31 марта 2020

Я занимаюсь разработкой NodeJS приложения. У меня была проблема с сохранением объекта в базе данных; код в моем контроллере был:

console.log("Before save: " + transaction);
transaction = await transaction.save();
console.log("After save");

В терминале, на котором запущено приложение Node, я увидел:

Before save: {
  _id: ...,
  created: ...,
  ...
}

и ничего более, пока страница браузера выглядит так, как будто она загружается.

Я попытался обернуть его в блок try-catch:

try {
  transaction = await transaction.save();
} catch (err) {
  console.log(err);
}

, и я получил такой же вывод в терминале. Я предполагаю, что, поскольку я не вижу ошибку в консоли без try-catch, я не вижу ее и с ней.

Одна проблема заключалась в том, что коллекция MongoDB для этого объекта не существовала ( и я спросил об этом здесь ). Но у меня все еще есть другая ошибка.

Как я могу включить MongoDB для отображения этих ошибок (отсутствующая коллекция и ошибка, которую я все еще ищу) в терминале, работающем NodeJS, пока я в разработке?

1 Ответ

0 голосов
/ 01 апреля 2020

Я обнаружил проблему: я пропустил next(); в хуке перед сохранением:

SomeSchema.pre('save', function(next) {
  // any logic you require
  if (this.condition) {
    // ...
  }
  next();  // <- this is required, else Mongo won't save nor return
});

Так что я не получил ошибку, потому что ошибки не было, только разрыв в потоке звонков.

...