Node.js 在测试环境中不记录错误

标签 node.js express

我有一个在测试环境中运行的小node.js/express.js应用程序。我只是想知道为什么 node.js 不记录错误。

开发环境中我可以看到错误。

TypeError: Cannot read property 'cardValue' of null

我已添加此代码,但还不够。

var express           = require('express'),    
    app               = module.exports = express(),
    server            = require('http').Server(app),
    logger            = require('morgan'),
    methodOverride    = require('method-override'),
    bodyParser        = require('body-parser'),
    multer            = require('multer'),
    errorHandler      = require('errorhandler');

process.env.NODE_ENV = process.env.NODE_ENV || 'development';
app.set('port', process.env.PORT || Config.service.port);
app.use(logger('dev'));
app.use(methodOverride());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(multer());
app.use(function (req, res, next) {
    res.setHeader('Access-Control-Allow-Origin', '*');
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type,Authorization');
    res.setHeader('Access-Control-Allow-Credentials', false);
    next();
});
console.log(process.env.NODE_ENV); // it prints test
if ('development' == app.get('env') || 'test' == app.get('env')) {
  app.use(errorHandler({ log : true}));
}
server.listen(app.get('port'), function(){
    console.log("Ronda.as server listening on port " + app.get('port') + " " + app.get('env'));
});

最佳答案

The fine manual状态:

log

Provide a function to be called with the error and a string representation of the error.

...

The default value for this option is true unless process.env.NODE_ENV === 'test'

换句话说,errorhandler 的默认设置是当 $NODE_ENV 等于 test 时不记录任何内容。

要修复,请使用它来强制其记录:

app.use(errorHandler({ log : true }));

关于Node.js 在测试环境中不记录错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31713427/

相关文章:

node.js - 如何在 hapi.js 服务器中编写类似 Apache 的访问日志

javascript - 填充嵌套引用 mongoosejs 的更好方法

php - Vagrants 多个位置并共享单个数据库?

node.js - 使用 express-session 和 connect-session-sequelize 时 this.sessionModel.find 不是函数

angularjs - RESTful Crud MEAN.js 路由

node.js - 对 express.js 登录 session 进行基准测试

node.js - 在WebStorm中使用supertest产生 'Argument type is not assignable to parameter type'和 'Unresolved function or method'

javascript - 记录每个方法?

javascript - 哪些文档描述了传递给 Express app.METHOD 回调参数的内容

node.js - Node - 连接闪存不工作