Можно ли регистрировать сообщения об ошибках с помощью morgan? - PullRequest
1 голос
/ 24 октября 2019

Я регистрирую запросы и ответы, используя morgan, и все работает нормально. Я хотел бы знать, есть ли способ, которым я мог бы также регистрировать сообщения об ошибках? Например: если в моем приложении произошел сбой блока try catch, я возвращаю ошибку 500 и пользовательское сообщение обратно. Но есть ли способ, которым я мог бы зарегистрировать фактический error.message?

Фрагмент из моего приложения

 try {
     // Resend OTP
     let otp_server_response = await sms.resendOTP(mobile_number, resend_mode);

     if(otp_server_response.type === "success") {
         return res.status(200).json({ message: "OTP_RESENT" });
     } else {
         console.log(otp_server_response.message); // <= Log this message in morgan logs if request reaches here
         return res.status(400).json({ message: "OTP_RESENDING_FAILED" });
     }
 }
 catch (error) {
     console.log(error.message); // <= Log this message in morgan logs if request reaches here
     return res.status(500).json({ message: "SOME_ERROR_OCCURRED" });
 }

Фрагмент моего файла логгера

 const errorLogFormat    = ":requestId :status :res[content-length] :response-time ms";
 .
 .
 .
 // Log error responses (4xx and 5xx)
            morganLogger(
                errorLogFormat,
                {
                    skip: (req, res) => {
                        return res.statusCode < 400
                    },
                    stream: rfs(
                        "responses.log",
                        {
                            interval: "1d",
                            path: logDirectory
                        }
                    )
                }
            )

1 Ответ

1 голос
/ 24 октября 2019

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

req.error = err;

, а затем получить доступ к req.error в своем пользовательском токене.

...