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

时间:2015-07-30 00:35:13

标签: node.js express

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

development environment我可以看到错误。

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'));
});

1 个答案:

答案 0 :(得分:0)

The fine manual州:

  

<强>登录

     

提供一个用错误调用的函数和错误的字符串表示。

     

...

     

除非process.env.NODE_ENV === 'test'

,否则此选项的默认值为true

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

要修复,请使用此选项强制它记录:

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