Node Template Engine
วันนี้ขอนำเสนอบทความสั้นๆสำหรับการเลือก Template Engine บน Node.js หากท่านยัง render ไฟล์ html ธรรมดาอยู่แล้วละก็ เปลี่ยนมาใช้ Template Engine กันดีกว่าครับ บทความนี้ assume ว่าผู้อ่านมีความรู้พื้นฐาน Node.js รวมถึง Express.js เบื้องต้นอยู่แล้ว เพราะฉะนั้นตรงส่วนไหนไม่เข้าใจ ก็ไปอ่านเพิ่มเติมเอานะครับ ขอโฟกัสที่ตัว Template Engine อย่างเดียว
Setup Project
ตัวอย่างจะทำการสร้างโปรเจ็คขึ้นมาแบบธรรมดา โดยมีแค่ไฟล์ package.json
, app.js
และโฟลเดอร์ views
โดยภายในโฟลเดอร์นี้ก็จะเป็นไฟล์ template นามสกุลต่างๆ
ไฟล์ package.json
ไฟล์ app.js
Jade Template
การใช้งานก็แค่ set view engine
เป็น jade
ไฟล์ app.js
สร้างไฟล์ index.jade
ในโฟลเดอร์ views
เมื่อรัน Server ก็จะถูกคอมไฟล์เป็นไฟล์ html แบบนี้
EJS Template
การใช้งานคล้ายกับ Jade
ก็แค่ set view engine
เป็น ejs
ไฟล์ app.js
และสร้างไฟล์ index.ejs
ขึ้นมาสำหรับเอาไว้ render
เมื่อรัน Server ก็จะถูกคอมไฟล์เป็นไฟล์ html แบบเดียวกับ Jade แบบนี้
Swig Template
Swig จะต่างจาก Jade
และ EJS
เล็กน้อย คือไฟล์ extension จะเป็น html
ปกติ โดยเรา้ต้องการให้ไฟล์ html ไหนทำการ render ด้วย Swig ก็จะใช้คำสั่ง swig.renderFile
ฉะนั้น view engine
ก็เซตเป็น html
แบบนี้
ไฟล์ index.html
สำหรับ Swig Template
เมื่อรัน Server ก็จะถูกคอมไฟล์เป็นไฟล์ html แบบเดียวกับ Jade และ EJS แบบนี้
Handlebars
Handlebars จะต่างจาก View Engine อื่นเล็กน้อย โดยการใช้ module express-handlebars
จากนั้น ก็ใช้ ตัว module กำหนดว่าจะใช้ไฟล์ extension เป็นชื่ออะไร อย่าง Handlebars ก็จะใช้ hbs ฉะนั้นก็เลยตั้งค่าเป็นแบบนี้
และสร้างไฟล์ index.hbs
ขึ้นมาแบบนี้
ผลลัพธ์ก็จะได้เช่นเดียวกันกับ View Engine อื่นๆ
สรุป
บทความนี้เป็นแค่ตัวอย่างการ Setup และใช้งาน View Template Engine เบื้องต้นเท่านั้น รายละเอียด และ Features อื่นๆ ที่แต่ละ View Engine มีก็ต้องไปลองอ่านเพิ่มเติมกันเอาเองครับ ส่วนนี้ผมทำไว้เผื่อตัวเองด้วย บางทีก็ลืมๆว่า ต้องกำหนดอะไรบ้าง เหมือนกัน :)
References
- Authors
-
Chai Phonbopit
เป็น Web Dev ในบริษัทแห่งหนึ่ง ทำงานมา 10 ปีกว่าๆ ด้วยภาษาและเทคโนโลยี เช่น JavaScript, Node.js, React, Vue และปัจจุบันกำลังสนใจในเรื่องของ Blockchain และ Crypto กำลังหัดเรียนภาษา Rust