Это, вероятно, дублированный вопрос, но я ничего не смог найти.Поскольку я изучаю NodeJS, я думаю, что я не использую правильные слова для поиска, поэтому трудно найти ответ.
Вот ситуация:
Я сейчас нахожусьпосле онлайн-курса о NodeJS и кодирования API.На данном этапе мы используем библиотеку Winston для регистрации ошибок.Инструктор настроил на Index js, которая является точкой входа приложения, следующим образом:
Файл: index.js
const winston = require('winston');
const errorHandler = require(./middleware/error.js);
//(...) some other imports
app.use(errorHandler);
winston.add(winston.transports.File,{filename:'logFile.log'});
И вдругой модуль, который мы создали в курсе для обработки ошибок, ему нужен winston и просто позвоните, чтобы зарегистрировать ошибку.Примерно так:
Файл: error.js
const winston = require('winston');
function errorHandler(err,req,res,next){
winston.error(err.message,err);
res.status(500).send("something failed");
}
module.exports = errorHandler;
После выполнения теста, ошибка правильно записывается в файл, и мой вопрос: каконо работает?Как настройки, сделанные для «требуемой версии» winston в index.js, видны из другой требуемой версии в error.js?
Из index.js мы также импортируем error.js, поэтому я могу представить, как эти два модуля совместно используют этот объект winston, но, опять же, я не понимаю, как и где он используется.
Опять же, извините, если я не использую правильные термины, чтобы ссылаться на что-либо здесь, я приму любой совет.
Спасибо.