我有一个在测试环境
中运行的小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'));
});
最佳答案
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/