Skip to main content

Intermediate Express.Js: Write Conditions and Loops In The EJS (study note)


We continue to use the app.js which we have build to be the study example. In the last post, we only add a simple EJS tag <%= thingVar %> inside h1 tag. This will match the "thing" to any "thing" request from the user.

If Statement

Today, the course shows us to write a simple if statement in the EJS file. I learn to apply it to my own app.

In the if statement, if users send"/wantto/workout" request, the page will show a new content "Good Idea!".


We wrote the if statement in the "diet.ejs" file, and we add "<% %>" tags around the code. We have to wrap every line of JavaScript anytime JavaScript starts and ends.

Moreover, you may see there are two types of ejs tags here:
  • <%= %>

The one with equal sign. According to the course, when we add equal sign, the value that is returned inside of the tag will be rendered to the HTML page. it will be added to the HTML. For example, if we write <%= 10+10 %>, it will be ended up 20 in the HTML page.

  • <% %>
When we are doing logic like if statement or loops, we don't want something to be added to HTML. The logic is not supposed to display anything, so we don't use equal sign.

As the result, when we run the app, we can see "Diet Idea: workout" is equal to the "/wantto/workout" on the browser. And the page shows "Good Idea!" because the logic we set up.



For Loop

We can also write loops in the ejs file. In order to do that, we start to add a new route in the "app.js" file.

In this new route, we want to show post page when users send a "/posts" request. In the post page, it has some post titles with authors.

This route will render the new ejs file "workoutposts.ejs", and we also add {posts: posts} in side the res.render(). The first "posts" is inside the template, and the second "posts" refers to the name of variable.


Then we create a new ejs file "workoutposts.ejs".  In this file, we write a simple h1 "Workout Posts", and a for loop, which we make li for each post. 


We also need to pay attention on the ejs tags. For the for loop statement, we use "<% %>" because it is the logic. For the JavaScript inside the li, we use "<%= %>", because we want it returns the post content on the HTML page.

As the result, when I search "/posts" on the browser, it shows the list of each post title and author name in bold.

Now we have one file that is responding not only in different way depending on the variables that users pass in, but also depending on what the variables is equal to.

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

Intro To Authentication: Three Useful Tools Will Make Everything Easier

Authentication is very important for both users and websites. It helps to keep users' information safe and also helps us to manage the accounts. Authentication is also complex because there is a lot of moving pieces that have to fit together in just the right way to make that work. The course introduce three tools to make authentication more quickly and safely. 1. Passport.js Passport.js will make our life easier and make our code shorter. It also helps to make implementation faster. Most importantly, it is used a lot in the real word. 2. Passport Local Passport Local is for username and password. It's about providing this entry point into all sorts of destinations. 3. Passport Local Mongoose This package will help us implement authentication with passport, and it's specially made to work with mongoose. We are also going to use these three tools into a Secret Page App project, which will show in next few posts.