我有一个我在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'));
});
答案 0 :(得分:0)
<强>登录强>
提供一个用错误调用的函数和错误的字符串表示。
...
除非
,否则此选项的默认值为trueprocess.env.NODE_ENV === 'test'
换句话说,errorhandler
的默认设置是$NODE_ENV
等于test
时不记录任何内容。
要修复,请使用此选项强制它记录:
app.use(errorHandler({ log : true }));