在对我的应用进行编码时,我在浏览器中输入网址时有时会遇到一些不幸,因此有时会收到错误消息:
Cannot GET /some/route
这是真的,因为路线可能没有定义。
但是由于这个应用程序计划进入制作阶段,我有点不想使用这个平面消息作为我的错误页面"。
查看Express 4文档,他们告诉我.use()
一个带有4个参数的中间件。我做到了但是我仍然会遇到这个问题...
原来这个消息来自finalhandler
模块,我的赌注是,这个中间件出现在我的错误捕获的4参数中间件之前。
这是一个基本的快速应用程序,我在尝试寻找解决方案时将它们放在一起:
var app = require("express")();
app.use("/yo", function(req, res, next){
res.send("Yo!");
});
app.use(function(error, req, res, next){
res.send("An error: "+error);
console.log(error);
});
app.listen(10000);
访问/yo
有效。但是,/
或/derp
会生成Cannot GET
消息而不是我的小中间件。
那么,现在如何正确完成?
答案 0 :(得分:2)
错误中间件仅用于实际错误,例如中间件或路由处理程序抛出异常或将错误传递给Array<Vector2> poly = new Array<Vector>();
。
如果要为与任何现有路由不匹配的请求提供路由处理程序,则只需在所有应用程序的路由/中间件之后添加中间件,如:
next()