Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difference between app.all('*') and app.use('/')

Is there a useful difference between app.all("*", … ) and app.use("/", … ) in Express.js running on Node.js?

like image 915
ostergaard Avatar asked Jan 02 '13 17:01

ostergaard


People also ask

What does app use mean?

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.

What is the use of APP get (*) in Express?

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 .

What is app get method?

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 )

What is app put?

The app. put() function routes the HTTP PUT requests to the specified path with the specified callback functions.


1 Answers

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).

like image 192
hunterloftis Avatar answered Oct 04 '22 00:10

hunterloftis