Add loopback.urlNotFound() middleware.

The middleware should be used as the last 3-parameter middleware (regular
request handles) before any 4-parameter middleware (error handlers).

This way a request to an URL not handled by any middleware is converted to
a 404 error that can be handled by whatever error handling strategy is
configured in the application.

See senchalabs/connect#954 for more details.
This commit is contained in:
Miroslav Bajtos 2013-11-18 15:36:13 +01:00
parent 94f232172d
commit 7d60b2dea6
1 changed files with 18 additions and 0 deletions

View File

@ -0,0 +1,18 @@
/**
* Export the middleware.
*/
module.exports = urlNotFound;
/**
* Convert any request not handled so far to a 404 error
* to be handled by error-handling middleware.
* See discussion in Connect pull request #954 for more details
* https://github.com/senchalabs/connect/pull/954
*/
function urlNotFound() {
return function raiseUrlNotFoundError(req, res, next) {
var error = new Error('Cannot ' + req.method + ' ' + req.url);
error.status = 404;
next(error);
}
}