import express from 'express';
import route from './server/routes/route';
import cookieParser from 'cookie-parser';
import bodyParser from 'body-parser';
import favicon from 'serve-favicon';
import path from 'path';
import Logger from './server/logger/logger.js';
try {
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use(cookieParser());
app.use(favicon(path.join(__dirname, '/client/assets/favicon.ico')));
app.use(express.static(path.join(__dirname, 'client')));
app.use(route);
app.listen(3000);
new Logger().logInfo('Server started at port 3000');
} catch (e) {
new Logger().logError(e);
process.exit(1);
}
process.on('uncaughtException', function (err) {
process.exit(1);
new Logger().logError(err);
});
Здесь я пытаюсь создать экспресс-сервер. Я использовал блок catch try. Когда я удаляю import path from 'path'
, генерируется ошибка и вызывается catch. Однако проблема new Logger().logError(e);
не работает. он должен регистрировать ошибку в определенном файле. Но ничего не происходит. Но если ошибки нет, то logInfo()
работает нормально. Я попытался войти в консоль, и он работает. Я использую babel, так это проблема с этим? Logger - это класс, который содержит реализацию winston logger и предоставляет методы logError и logInfo.Создать новый объект() в блоке catch js
* «Однако проблема в том, что это« новый Logger(). LogError (e); 'не работает». * Можете ли вы рассказать об этом? –
Вопрос отредактирован –
Может быть, что '.logError()' не является полностью синхронным, а 'process.exit (1)' прерывает его до его завершения. – jfriend00