node.js不';t在测试环境中记录错误
我有一个node.js/express.js小应用程序,我正在node.js不';t在测试环境中记录错误,node.js,express,Node.js,Express,我有一个node.js/express.js小应用程序,我正在测试环境中运行。我只是想知道node.js为什么不记录错误 在开发环境中我可以看到错误 TypeError: Cannot read property 'cardValue' of null 我添加了此代码,但这还不够 var express = require('express'), app = module.exports = express(), serv
测试环境中运行。我只是想知道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'));
});
国家:
日志
提供要使用错误调用的函数和错误的字符串表示形式
除非process.env.NODE\u env==“test”
换句话说,errorhandler
的默认值是当$NODE_ENV
等于test
时不记录任何内容
要修复此问题,请使用此命令将其强制记录:
app.use(errorHandler({ log : true }));
国家:
日志
提供要使用错误调用的函数和错误的字符串表示形式
除非process.env.NODE\u env==“test”
换句话说,errorhandler
的默认值是当$NODE_ENV
等于test
时不记录任何内容
要修复此问题,请使用此命令将其强制记录:
app.use(errorHandler({ log : true }));
errorHandler
的作用是什么?这是Express.js的内置错误处理程序。您能用脚本更新问题以初始化服务器吗?完成。这是一个非常经典的代码。有没有办法告诉node.js也记录测试环境中的所有错误?你确定$node_ENV
设置为test
?errorHandler
做什么?Express的内置错误处理程序。js你能用脚本更新问题以初始化服务器吗?完成。这是一个非常经典的代码。有没有办法告诉node.js也记录测试环境中的所有错误?是否确定$node_ENV
设置为test
?它不起作用。我仍然只在开发环境中获得错误日志。您应该发布您正在使用的实际代码,因为现在,它无论如何都不会工作(您已经有了自己的错误处理程序,我认为Express不允许一个错误处理程序有多个)。代码已更新。我没有使用自己的错误处理程序。我使用的是errorhandler
包提供的一个。我应该使用多个错误处理程序吗?@hamou92 this:app.use(function(err,req,res,next){…}
是一个错误处理程序。我已经删除了自己的一个。在测试环境中仍然不会出现错误。它不起作用。我仍然只在开发环境中获得错误日志。您应该发布您正在使用的实际代码,因为现在,它无论如何都不会工作(您已经有了自己的错误处理程序,我认为Express不允许一个错误处理程序有多个)。代码已更新。我没有使用自己的错误处理程序。我使用的是errorhandler
包提供的一个。我应该使用多个错误处理程序吗?@hamou92 this:app.use(function(err,req,res,next){…}
是一个错误处理程序。我已经删除了自己的一个。在测试环境中仍然不会出现错误。