在 catch 块 js 中创建新的 Object()
Create new Object() in catch block js
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);
});
我在这里尝试创建一个快速服务器。我使用了 try catch 块。当我删除 import path from 'path'
时,会生成一个错误并调用 catch。但是问题是 new Logger().logError(e);
不工作。它应该将错误记录到某个文件中。但什么也没有发生。但如果没有错误,则 logInfo()
工作正常。我尝试登录到控制台,它正在工作。我正在使用 babel,所以它有问题吗?
Logger 是一个 class,它包含一个 winston logger 实现并公开方法 logError 和 logInfo。
它是 known bug in winston 并且他们似乎不打算修补它。我使用了那里提供的一种解决方法,一切正常。这里
this.winstonlogger.log('error', logMessage, () => {
this.transports.file.on('flush', () => {
process.exit(1);
});
});
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);
});
我在这里尝试创建一个快速服务器。我使用了 try catch 块。当我删除 import path from 'path'
时,会生成一个错误并调用 catch。但是问题是 new Logger().logError(e);
不工作。它应该将错误记录到某个文件中。但什么也没有发生。但如果没有错误,则 logInfo()
工作正常。我尝试登录到控制台,它正在工作。我正在使用 babel,所以它有问题吗?
Logger 是一个 class,它包含一个 winston logger 实现并公开方法 logError 和 logInfo。
它是 known bug in winston 并且他们似乎不打算修补它。我使用了那里提供的一种解决方法,一切正常。这里
this.winstonlogger.log('error', logMessage, () => {
this.transports.file.on('flush', () => {
process.exit(1);
});
});