Is there a useful difference between app.all("*", … )
and app.use("/", … )
in Express.js running on Node.js?
use(): The app. use() function is used to mount the specified middleware function (are the functions that have access to the request object and response object, or we can call it a response-request cycle) at the path which is being specified.
Express' app. get() function lets you define a route handler for GET requests to a given URL. For example, the below code registers a route handler that Express will call when it receives an HTTP GET request to /test .
The app. get() function routes the HTTP GET Requests to the path which is being specified with the specified callback functions. Basically it is intended for binding the middleware to your application. Syntax: app.get( path, callback )
The app. put() function routes the HTTP PUT requests to the specified path with the specified callback functions.
In most cases they would work equivalently. The biggest difference is the order in which middleware would be applied:
app.all()
attaches to the application's router, so it's used whenever the app.router
middleware is reached (which handles all the method routes... GET
, POST
, etc).NOTICE:
app.router
has been deprecated in express 4.x
app.use()
attaches to the application's main middleware stack, so it's used in the order specified by middleware, e.g., if you put it first, it will be the first thing to run. If you put it last, (after the router), it usually won't be run at all.Usually, if you want to do something globally to all routes, app.use()
is the better option. Also, it has less chance of future bugs, since express 0.4 will probably drop the implicit router (meaning, the position of the router in middleware will be more important than it is right now, since you technically don't even have to use it right now).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With