ปกติ MEAN Stack จะมีการนำ Angular มาใช้ในหน้าเว็บ (ฝั่ง Front-end) อยู่แล้ว เพียงแต่ตัว HTML Template Engine ในระบบ Express ที่ MEAN Stack กำหนดมาคือ Jade Template ซึ่งเวลาเขียนมันจะเป็นรูปแบบพิเศษๆ ไม่เหมือน HTML ทั่วไปดังนี้
doctype html head title Nextflow Training: MEAN Stack body h1 Hello, World!
แน่นอนว่ามันทำให้การเขียน HTML ดูเรียบๆ สวยๆ สะอาดๆ แต่สำหรับคนที่ไม่คุ้นเคย อาจทำให้การทำงานในส่วนนี้เสียเวลาโดยใช่เหตุ
หลายๆ บริษัทที่พลไปช่วยโค้ชเรื่อง MEAN Stack ก็คิดแบบเดียวกัน แบบว่า “ขอ HTML แบบปกติมาใช้งานเถอะ พลีสสสส” เพราะพวกเราหลายๆ คนก็โอเคกับการเอา Angular มาใช้งานในไฟล์ HTML แบบปกติอยู่แล้ว
เลยขอมาเขียนแนะนำไว้ที่นี่นะ
1. สลับ Template Engine จาก Jade เป็น EJS
อย่างแรกเลย คือเราจะต้องสลับไปใช้ Template Engine อื่นที่ไม่ใช่ Jade เพราะ Syntax ของ Jade นั้นเป็นปัญหา เราเลยจะสลับไปใช้ EJS ซึ่งเป็นมิตรกับ HTML กว่ามาก
ว่าแล้วก็สั่งติดตั้ง ejs ลงในโปรเจค
npm install ejs
จากนั้นในไฟล์ app.js ของโปรเจค Express ให้ลบส่วนที่ใช้ Jade engine ออก และใส่เป็น ejs แทนตามนี้
app.engine('html', require('ejs').renderFile); app.set('view engine', 'html');
2. เรียกใช้งานไฟล์ HTML ด้วยคำสั่ง Render ตามปกติ
เมื่อเราสลับมาใช้ EJS เป็น engine แล้ว เราสามารถเรียกใช้ไฟล์ HTML เป็น template ได้ตามปกติเลย
router.get('/', function(req, res, next) { res.render('index'); // เรียกใช้ไฟล์ index.html ในโฟลเดอร์ที่กำหนดไว้ (ค่าเริ่มต้นคือ Views) });
สรุป
ดังนั้นหากพวกเราไม่ถนัดในการนำ Jade มาใช้ใน Workflow ของโปรเจค MEAN Stack ก็ยังมีตัวเลือกเป็น EJS และ HandleBars ที่ยุ่งเกี่ยวกับ HTML น้อยกว่า Jade ให้เลือกใช้ครับ
อ้างอิง – Stack Overflow