Our Goals –
• Create a Simple Webpage with the help of NodeJS and EJS Template
Assumption
We already have a NodeJs project “myschool” in our working directory. If you don’t have the project then please create it. We have discussed it on our previous tutorial.
To do so –
1. Open comand prompt at our working directory and install “ejs” by typing “npm install ejs –save”.
2. And the out put will be like –
3. The “package.json” file will looks like –
{ "name": "myschool", "version": "1.0.0", "description": "My First Project in NodeJS", "main": "app.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "Tanmay Sarkar", "license": "ISC", "dependencies": { "body-parser": "^1.17.0", "ejs": "^2.5.6", "express": "^4.15.0" } }
4. Create a folder “app_views” on root section of the project.
5. Now create 3 file on “app_views” folder and place the following ocde on each file.
6. For “header.ejs” file
<html> <head> <meta charset="UTF-8"> <title>My EJS Template</title> <meta name="description" content="Sample Web tutorials for Node JS"> <meta name="keywords" content="NodeJS,EJS"> <meta name="author" content="Tanmay Sarkar"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head>
7. For “footer.ejs” file
</html>
8. For “home.ejs”
<% include header %> <body> <h1><%= topicHead %></h1> </body> <% include footer %>
9. For “app.js”
Note : In line 8 ‘home’ is the file name of “home.ejs”
10. Considering we have installed “nodemon” in our nodejs and run “nodemon”
11. Now browser will show our first EJS template based webpage @ http://localhost:5000/
12. And the console log is –
Source Code :
var express = require('express'); var parser = require('body-parser'); var path = require('path'); var app = express(); app.set('view engine','ejs'); app.set('views',path.join(__dirname,'app_views')) app.get('/',function(req,res){ res.render('home',{ topicHead : 'Hello From EJS Template' }); console.log('user accessing Home page'); }); app.listen(5000,function(){ console.log('server running on port 5000'); })
Thank you.