Is there a useful difference between app.all("*", … ) and app.use("/", … ) in Express.js running on Node.js?
Is there a useful difference between app.all("*", … ) and app.use("/", … ) in
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
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 theapp.routermiddleware is reached (which handles all the method routes…GET,POST, etc).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).