ทำการติดตั้ง node และ npm
ติดตั้ง package.json
วิธีการติดตั้ง
สร้าง ไฟล์ .gitignore ที่ root directory เพื่อทำการ ignore ไฟล์ package.json และ node_modules/ โดยใส่ content ตาม
สร้าง directory ชื่อ server (อาจใช้เป็นชื่ออื่นก็ได้) แล้วภายใน directory ให้สร้างไฟล์ index.js จะได้โปรเจคตามโครงสร้างดังภาพด้านล่าง
ทดสอบการทำงานของ express และ node โดยเพิ่ม content ดังต่อไปนี้เข้าไปที่ index.js
ทดสอบการทำงานของ server โดยพิมพ์์คำสั่ง
จะได้ผลลัพธ์ที่ console ตามภาพด้านล่าง
แต่หากระบบเกิด error เช่น
events.js:167
throw er; // Unhandled 'error' event
ให้ทำการ kill node ที่อาจ run ไว้ก่อนหน้านี้โดยใช้คำสั่ง
ขั้นตอนถัดไปเราจะทำให้ server สามารถทำ hot reload ได้โดยใช้ nodemon โดยให้ไปที่ไฟล์ package.json และทำการแก้ไข script ตามภาพด้านล่าง
สิ่งที่เกิดขึ้นตอนนี้คือเราสร้าง script ชื่อ dev ขึ้นมา โดยเมื่อ user ทำการ run script นี้โดยพิมพ์์คำสั่ง
ณ จุดนี้เราจะสามารถเรียกใช้ nodemon เพื่อทำการ hot reload หน้า page ได้อย่างที่เราต้องการ แต่สิ่งหนึ่งที่เราต้องคำนึงถึงคือ javascript ที่เราใช้อยู่ในขณะนี้อาจยังไม่ support กับ node js เก่าๆ ดังนั้นเราจึงต้องนำ babel เข้ามาช่วยในการแปลง script
ให้เราทำการแก้ไข script ในไฟล์ package.json ตามภาพด้านล่าง
โดยเราจะให้ nodemon เรียกใช้ babel-node แทนการเรียกใช้คำสั่ง node โดยตรง ทั้งนี้เพื่อต้องการให้ระบบทำการแปลงโค้ด java-script ให้ใช้กับ node js ได้
นอกจากนี้สิ่งหนึ่งที่เราต้องทำเมื่อมีการเรียกใช้ babel ก็คืือการกำหนด preset เพื่อให้ babel รู้ว่าต้องแปลงโค้ดไปเป็น version อะไร โดยให้เราไปที่ root directory และสร้างไฟล์ .babelrc ซึ่งจะได้ project ตาม structure ด้านล่าง
ให้ทำการกำหนด preset ให้กับ babel โดยพิมพ์ content ดังต่อไปนี้ใส่เข้าไปใน .babelrc
และเมื่อเราทำการติดตั้ง babel เป็นที่เรียบร้อยแล้ว เราก็จะสามารถใช้คำสั่งใหม่ๆ ที่อาจจะไม่ support ใน node js เวอร์ชั่นเก่าได้ ยกตัวอย่างเช่นเราสามารถเรียกใช้คำสั่ง import แทนคำสั่ง require เดิมได้ โดยทดลองโดยไปที่ index.js และแก้ไขคำสั่ง
const express = require('express')
ให้เป็นคำสั่ง
import express from 'express'
จะได้ไฟล์ server/index.js ตามภาพด้านล่าง
ทดสอบการทำงานโดย run คำสั่งด้านล่าง (เพื่อ execute ตัว script ตามที่เราระบุไว้ใน package.json)
ติดตั้ง package.json
npm init -y
- express (คือ web framework ที่ใช้กับ node js)
- nodemon (library สำหรับการทำ hot reload)
- babel (library สำหรับแปลงโค้ด javascript ใหม่ๆ ของ express ให้สามารถใช้ได้กับ node js เวอร์ชั่นเก่าๆ ได้)
โดยรันคำสั่งด้านล่าง
npm install --save nodemon express @babel/node @babel/cli @babel/core @babel/preset-env
package.json
node_modules/
ทดสอบการทำงานของ express และ node โดยเพิ่ม content ดังต่อไปนี้เข้าไปที่ index.js
const express = require('express')
const app = express()
app.listen(3000, () => {
console.log("server started")
})
ทดสอบการทำงานของ server โดยพิมพ์์คำสั่ง
node server/index.js
server started
แต่หากระบบเกิด error เช่น
events.js:167
throw er; // Unhandled 'error' event
ให้ทำการ kill node ที่อาจ run ไว้ก่อนหน้านี้โดยใช้คำสั่ง
killall node
"scripts": {
"dev": "nodemon server/index"
}
สิ่งที่เกิดขึ้นตอนนี้คือเราสร้าง script ชื่อ dev ขึ้นมา โดยเมื่อ user ทำการ run script นี้โดยพิมพ์์คำสั่ง
ระบบจำทำการ run server โดย execute คำสั่ง nodemon server/index ซึ่งจะได้ผลลัพธ์เดียวกันกับการ run คำสั่ง node server/index.js แต่ระบบจะทำการ hot reload ให้โดยอัตโนมัติเมื่อมีการแก้ไขไฟล์npm run dev
ณ จุดนี้เราจะสามารถเรียกใช้ nodemon เพื่อทำการ hot reload หน้า page ได้อย่างที่เราต้องการ แต่สิ่งหนึ่งที่เราต้องคำนึงถึงคือ javascript ที่เราใช้อยู่ในขณะนี้อาจยังไม่ support กับ node js เก่าๆ ดังนั้นเราจึงต้องนำ babel เข้ามาช่วยในการแปลง script
ให้เราทำการแก้ไข script ในไฟล์ package.json ตามภาพด้านล่าง
"scripts": {
"dev": "nodemon --exec babel-node server/index"
}
โดยเราจะให้ nodemon เรียกใช้ babel-node แทนการเรียกใช้คำสั่ง node โดยตรง ทั้งนี้เพื่อต้องการให้ระบบทำการแปลงโค้ด java-script ให้ใช้กับ node js ได้
นอกจากนี้สิ่งหนึ่งที่เราต้องทำเมื่อมีการเรียกใช้ babel ก็คืือการกำหนด preset เพื่อให้ babel รู้ว่าต้องแปลงโค้ดไปเป็น version อะไร โดยให้เราไปที่ root directory และสร้างไฟล์ .babelrc ซึ่งจะได้ project ตาม structure ด้านล่าง
ให้ทำการกำหนด preset ให้กับ babel โดยพิมพ์ content ดังต่อไปนี้ใส่เข้าไปใน .babelrc
{
"presets": [
"@babel/preset-env"
]
}
และเมื่อเราทำการติดตั้ง babel เป็นที่เรียบร้อยแล้ว เราก็จะสามารถใช้คำสั่งใหม่ๆ ที่อาจจะไม่ support ใน node js เวอร์ชั่นเก่าได้ ยกตัวอย่างเช่นเราสามารถเรียกใช้คำสั่ง import แทนคำสั่ง require เดิมได้ โดยทดลองโดยไปที่ index.js และแก้ไขคำสั่ง
const express = require('express')
ให้เป็นคำสั่ง
import express from 'express'
จะได้ไฟล์ server/index.js ตามภาพด้านล่าง
import express from 'express'
const app = express()
app.listen(3000, () => {
console.log("server started success")
})
ทดสอบการทำงานโดย run คำสั่งด้านล่าง (เพื่อ execute ตัว script ตามที่เราระบุไว้ใน package.json)
npm run dev
ทดสอบด้วยตัวของคุณเอง
โดย ดาวน์โหลดไฟล์ และรันคำสั่งเพื่อทำการติดตั้ง library ต่างๆ และรันคำสั่งnpm install
เพื่อทดสอบการทำงานnpm run dev
No comments:
Post a Comment