显示NodeJS和Express抛出错误500的位置

时间:2015-02-26 00:17:34

标签: node.js express error-handling

我正在使用节点,我尝试将显示重定向为404和500错误。

现在我的代码工作正常:

/* ... Some require here ... */

var app = module.exports = express();

/* ... Some app config here */

// Setup my routes
routes.setup(app);

// Handling 404 errors
app.use(function(req, res) {
   res.end("Oups !", 404);
});

// Handling 500 errors
app.use(function(error, req, res, next) {
   console.log("Display error : ", error);
   res.end("Oups !", 500);
});

// Start server
var server = app.listen(config.PORT);

现在,如果在我的代码上我做throw new Error("An error here");在console.log上我只得到一个字符串:

Display error : An error here

如果我删除处理错误500的部分,在控制台日志中我会自动获得错误来源的描述:

Error: An error here
    at Layer.handle (/Users/arthurgerbelot/dev/perso/test_error/app.js:94:7)
    at trim_prefix (/Users/arthurgerbelot/dev/perso/test_error/node_modules/express/lib/router/index.js:226:17)
    at c (/Users/arthurgerbelot/dev/perso/test_error/node_modules/express/lib/router/index.js:198:9)
    at Function.proto.process_params (/Users/arthurgerbelot/dev/perso/test_error/node_modules/express/lib/router/index.js:251:12)
    at next (/Users/arthurgerbelot/dev/perso/test_error/node_modules/express/lib/router/index.js:189:19)
    at next (/Users/arthurgerbelot/dev/perso/test_error/node_modules/express/lib/router/index.js:166:38)
    at next (/Users/arthurgerbelot/dev/perso/test_error/node_modules/express/lib/router/index.js:166:38)
    at next (/Users/arthurgerbelot/dev/perso/test_error/node_modules/express/lib/router/index.js:166:38)
    at next (/Users/arthurgerbelot/dev/perso/test_error/node_modules/express/lib/router/index.js:166:38)
    at Layer.handle (/Users/arthurgerbelot/dev/perso/test_error/app.js:50:5)

如何获取有关抛出投掷位置的信息?

谢谢大家!

2 个答案:

答案 0 :(得分:0)

/ Setup my routes
routes.setup(app);

你可能在routes.setup(app);

中遇到了问题

首先删除行代码测试你的应用程序

答案 1 :(得分:0)

是的!阅读完一半的网络文档后,我找到了解决方案!

函数的error var返回不是console.log()上显示的字符串。但是一个对象..

如果Object.keys(error)返回一个空数组,则存在一些属性,并且路径信息在`error.stack上定义。

有关详细信息:https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Error