cb не является функцией - при обработке необработанного отказа от обещания с использованием winston - PullRequest
0 голосов
/ 05 ноября 2019

This is a logfile image where am getting cb is not a function

Получение cb не является функцией, когда я запускаю этот код для обработки необработанного отказа от Promise с помощью winston. В консоли он показывает точную ошибку, но хранит cb - это не функция.

winston.add(winston.transports.File, {
  filename: "logfile.log"
});
winston.add(winston.transports.MongoDB, {
  db: "mongodb://localhost/vidly-practice",
  level: "info"
});
process.on("uncaughtException", ex => {
  console.log("WE GOT UNHANDLED EXCEPTION");
  winston.error(ex.message, ex);
});
process.on("unhandledRejection", ex => {
  winston.error(ex.message, ex);
  process.exit(1);
});
const p = Promise.reject(new Error("Unhandled rejection.........!!!"));
p.then(() => console.log("Done"));

Прослушивание через порт 3000 ... ошибка: необработанное отклонение ......... !!! Ошибка: необработанный отказ ......... !!! на объекте. (F: \ Node js Course [FreeCoursesOnline.Me] CodeWithMosh - Полный курс Node.js \ 9- Mongoose - Моделирование взаимосвязей между подключенными данными \ 9.7- Проект - Создание API-интерфейса по аренде \ after \ vidly \ index.js: 36:26) в Module._compile (внутренний / modules / cjs / loader.js: 956: 30) в Object.Module._extensions..js (внутренний / modules / cjs / loader.js: 973: 10) в Module.load (внутренняя / modules / cjs / loader.js: 812: 32) в Function.Module._load (внутренняя / modules / cjs / loader.js: 724: 14) в Function.Module.runMain (внутренняя / modules / cjs / загрузчик). js: 1025: 10) на внутреннем / главном / run_main_module.js: 17: 11

1 Ответ

0 голосов
/ 05 ноября 2019

Отказ от ответственности: Я не использую winston.

Вы передаете ex в качестве второго параметра, который ожидает функцию. В данном коде ex - это не функция, а экземпляр Error или что-то подобное.

Вам следует сделать что-то вроде приведенного ниже фрагмента кода.

// NOTE: this code is not tested
process.on("unhandledRejection", (ex) => {
     winston.error(ex.message, () => { // this should be your callback
         // do something inside your callback function
     });
     process.exit(1);
});
// NOTE: this code is not tested

Или, если вызнайте TypeScript, прочитайте набор текста: https://github.com/winstonjs/winston/blob/master/index.d.ts#L60

Или этот, который подходит для вашего случая: https://github.com/winstonjs/winston/blob/master/index.d.ts#L68

...