Hướng dẫn nodejs ejs

Khi chúng ta tạo một App với Node JS, có nhiều cách để quản lý views nhưng cách dễ dàng và nhanh nhất là EJS. 1. Bắt đầu App của chúng ta sẽ bao gồm 2 phần: Gồm Full widthsidebar

Cấu trúc của app sẽ như sau: -- views -- -- -- partials -- -- -- -- -- foooter.ejs -- -- -- -- -- head.ejs -- -- -- -- -- header.ejs -- -- -- pages -- -- -- -- -- index.ejs -- -- -- -- -- about.ejs -- package.json -- server.js

Trong đó package.json sẽ chứa thông tin và các depedencies mà chúng ta cần (Như express, nodemon, EJS, ...). Còn server.js chứa các cấu hình về Express.

a. Node setup: Bật Terminal và gõ các lệnh sau:

mkdir node_report
cd node_report
npm init # Enter đến khi nào xong thì thôi
atom .

Kết quả như sau:

Hướng dẫn nodejs ejs

Sau đó, ta cài đặt express, nodemon, ejs vào:

npm install express ejs --save
npm install -g nodemon

Tạo mới thư mục server.js với nội dung như sau:

var express = require('express');
var app = express();

app.get('/', (req, res) => {
  res.send("Test");
})

app.listen(8080);

Chạy localhost:8080 với cú pháp như sau:

nodemon server

Kết quả như sau:

Hướng dẫn nodejs ejs
Về cơ bản đã hoàn thành các setup, ta tiến hành thêm đoạn code sau vào server.js:

var express = require('express');
var app = express();
app.set('view engine', 'ejs');
// index page 
app.get('/', function(req, res) {
    res.render('pages/index');
});

// about page 
app.get('/about', function(req, res) {
    res.render('pages/about');
});

app.listen(8080);

2. Các tệp tin EJS Tạo mới thư mục views/partials và sau đó thêm các tệp tin sau:




Super Awesome









Sample app






    <% include ../partials/head %>



    
<% include ../partials/header %>

This is great

Welcome to templating using EJS

<% include ../partials/footer %>

Sau khi thêm các tệp tin trên, ta F5 lại localhost:8080 và đạt kết quả sau:

Hướng dẫn nodejs ejs
Hiện tại chúng ta có 2 pages là pages home và about, ta đã làm xong home rồi. Giờ đến about, tạo mới view about như sau:




    <% include ../partials/head %>



    
<% include ../partials/header %>

This is great

Welcome to templating using EJS

Look I'm A Sidebar!

<% include ../partials/footer %>

F5 lại localhost:8080 và đạt kết quả như sau:

Hướng dẫn nodejs ejs
3. Truyền Data sang Views Chúng ta sẽ thử truyền một list và variable sang trang home. Chỉnh sửa file server.js như sau:

// index page 
app.get('/', function(req, res) {
    var drinks = [
        { name: 'Bloody Mary', drunkness: 3 },
        { name: 'Martini', drunkness: 5 },
        { name: 'Scotch', drunkness: 10 }
    ];
    var tagline = "Any code of your own that you haven't looked at for six or more months might as well have been written by someone else.";

    res.render('pages/index', {
        drinks: drinks,
        tagline: tagline
    });
});

Như trên chúng ta đã truyền sang trang index.ejs hai giá trị drinks và tagline. Sang views/pages/index.ejs để nhận những giá trị này:


...

Variable

<%= tagline %>

Loop

    <% drinks.forEach(function(drink) { %>
  • <%= drink.name %> - <%= drink.drunkness %>
  • <% }); %>
...

Kết quả đạt được như sau:

Hướng dẫn nodejs ejs
4. Tổng kết Như vậy chúng ta đã hoàn thành một app đơn giản bằng Node JS sử dụng Express, Nodemon và EJS để quản lý views. Qua đó chúng ta đã biết được:

  • Cách sử dụng Nodemon để auto-reload lại localhost mỗi khi thay đổi code mà không cần restart server.
  • Sử dụng EJS để quản lý views, biết cách truyền dữ liệu qua views.. Nguồn tham khảo: https://scotch.io/tutorials/use-ejs-to-template-your-node-application