Skip to main content

Express.js Study Note: Route Order Is Matters!


Last post, I have learned to develop my first Express App from the course. Basically,  it has three routes. When we type "/", "/bye" and "/cat", the app will receive the request and send the matched response to us.

But, if we want to send a nice message when users type other texts after slash, what should we do?

We can write a "*" route which will run whenever out app gets any request to any url aside from those three routes that we have already defined.

app.get("*", function)

In the App.js file, we add a new star route, and it will send you a new message whenever you type any undefined request.


I run my app, and put some random texts after slash, and hit enter. All I get is "You are a star!".



If we move the star route to the top of those three routes, what will happen? The instructor run the app, the result is even though we send the "/", "/bye" or "/cat" request, all we get is "You are a star".

Therefore, the order of route is matters! 

If we put the star route at first, nothing else will be matched ever. The key concept is that the first route that matches a given request is the only route that will be run. That's why we normally put the start route at the bottom.

Another thing I learned is route parameters.

Image if we have a blog which covers a lot of subjects, it would be super stress to cover every single subject in app.get. The code will not DRY(don't repeat yourself), and it wastes a lot time. The most importantly, we will never match all subjects that users want to search.

To solve the above problem, we need to use route parameter which we can use to define a pattern in a route that doesn't have to be matched word for word. It just needs to match the same patterns. 

For example, I write a route pattern:
app.get ("/a/:subName, function)

The ":subName" is the pattern. Users can type "/a/anyname" to send the request, and receive the relevant message.



When I type "/a/babywipe" in the url to make a request, I will receive the new message. 



We can also add more "/:patterns" in the app route too. For example, we can add "/:id/:title/" after the comments. 



As the result, when I type the "/a/babywipe/comments/123/best_baby_wipe" which matches the pattern route, the app send "Leave Your Comment Here" message back to me.




Comments

Popular posts from this blog

GIT Study Note: Six Git Commands You Should Know!

What is Git? According to Git website , Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Basically, we can use Git to track all of changes and revert them back if we made mistakes. The version control system is a way for us to work with different versions of our code, so that we can save different features and make notes as we progress. It is also very useful for team collaboration. Six Git Command You Should Know 1. Git Init In our server, we need to create a "Git" directory and inside of "Git", we make another direcory "git_inro". Then, we add a file "app,js" in the "git_intro" folder. The first thing we need to run is "git init" . When we run git init, it will make a directory which is hidden called ".git". Wherever I run that git init command, it's going to track all of our changes. ...

Intermediate Express.js: How To Render HTML From A EJS File?

The Express.js apps we have developed so far are just simply getting requests from users and sending matched message back to them. However, it is not what we want in the real web application. In most case, we want to send back a relevant web page when our app receives request from user. In order to do that, we need to npm install ejs file in the Express, create HTML page in the ejs file, and render HTMl from the ejs file. I know it sounds confuse now. I am going to explain more details in the example. EJS stands for embedded JavaScript. It lets us embed JavaScript code variables if statements loops inside of HTML. How to render HTML from a EJS file? Step One: Create a HTML page in EJS file Firstly, in our server, we create a folder named "EJSDemo". In this folder, we touch two files, one is "app.js", and the other one is "home.ejs". We are going to write a simple HTML code in the "home.ejs" file. The instructor create a dog page,...

Express Study Notes: Five Steps To Develop My First Express App

In the last post, I shared my study note about one of the most important reason that Node is very popular is because Node has the largest package ecosystem of open source libraries in the world. Node's NPM, the package manager for Javascript, contains almost 200,000 packages which are centralized on the NPM website. And more importantly, NPM has a command line tool which help us to install packages really easily. The course instructor told us that we are going to learn Express.js to develop Apps in this course. screenshot for the Express.js.com homepage What is Express.js? Express.js is a web development framework. According to the course, framework is a bunch of code that someone else wrote just like a library is except when we use a framework, we have less control. The goal of using this framework is to make our development of APPs faster. Why do we use Express.js? 1. It is the most popular Node web development framework so far. 2. It is a very lightweight ...