Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
node.js不';t在测试环境中记录错误_Node.js_Express - Fatal编程技术网

node.js不';t在测试环境中记录错误

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/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'));
});
国家:

日志

提供要使用错误调用的函数和错误的字符串表示形式

除非
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){…}
是一个错误处理程序。我已经删除了自己的一个。在测试环境中仍然不会出现错误。