Node.JS

Node.js คือรันไทม์ JavaScript แบบโอเพนซอร์สข้ามแพลตฟอร์มที่ทำงานบนเซิร์ฟเวอร์ นับตั้งแต่เปิดตัวในปี 2009 แพลตฟอร์มนี้ได้รับความนิยมอย่างมากและมีบทบาทสำคัญอย่างมากในด้านการพัฒนาเว็บในปัจจุบัน
สำหรับบทความฉบับเต็มได้ที่ Node.JS ...

แสดงตัวกรอง
ตัวกรองโฮสติ้ง
A2 Themes & Host Me Filter

ระบบปฏิบัติการ

พื้นที่ดิสก์

หน่วยความจำ RAM

ประเภทดิสก์

แกน CPU

จัดเรียง

คะแนน - 5.2
Dream Host Logo
Dream Host

ดรีมโฮสต์

DreamObjects 40 GB
$0.95 /รายเดือน

29 คูปอง

ตำแหน่งเซิร์ฟเวอร์


Dream Host Servers in Ashburnสหรัฐ
เปรียบเทียบ
Trust Pilot ICDSoft
คะแนน - 10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - Europe
$8 /รายเดือน

รีวิว 233


ตำแหน่งเซิร์ฟเวอร์


ICDSoft Servers in Sofiaบัลแกเรีย ICDSoft Servers in Bostonสหรัฐ ICDSoft Servers in Hong Kongฮ่องกง
เปรียบเทียบ
Trust Pilot ICDSoft
คะแนน - 10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - USA
$8 /รายเดือน

รีวิว 233


ตำแหน่งเซิร์ฟเวอร์


ICDSoft Servers in Sofiaบัลแกเรีย ICDSoft Servers in Bostonสหรัฐ ICDSoft Servers in Hong Kongฮ่องกง
เปรียบเทียบ
คะแนน - 9
A2hosting Logo
A2hosting

A2hosting

Lite
$3.92 /รายเดือน

50 คูปอง

ตำแหน่งเซิร์ฟเวอร์


A2hosting Servers in Amsterdamเนเธอร์แลนด์ A2hosting Servers in Michiganสหรัฐ A2hosting Servers in Singaporeสิงคโปร์
เปรียบเทียบ
Trust Pilot Keliweb
คะแนน - 9.8
Keliweb Logo
Keliweb

เคลิเวบ

Prime
$5.51 /รายเดือน

รีวิว 453


ตำแหน่งเซิร์ฟเวอร์


Keliweb Servers in Milanoอิตาลี
เปรียบเทียบ
Trust Pilot JustHostMe
คะแนน - 9.4
JustHostMe Logo
JustHostMe

JustHostMe

Starter
$3.11 /รายเดือน

รีวิว 72


ตำแหน่งเซิร์ฟเวอร์


JustHostMe Servers in United Kingdomประเทศอังกฤษ
เปรียบเทียบ
Trust Pilot Dream VPS
คะแนน - 8.6
Dream VPS Logo
Dream VPS

ฝัน VPS

STARTER
$3.75 /รายเดือน

รีวิว 7


ตำแหน่งเซิร์ฟเวอร์


Dream VPS Servers in Hong Kongฮ่องกง Dream VPS Servers in Santa Clara Dream VPS Servers in New Yorkสหรัฐ Dream VPS Servers in Londonประเทศอังกฤษ Dream VPS Servers in Amsterdamเนเธอร์แลนด์ Dream VPS Servers in Frankfurtเยอรมนี Dream VPS Servers in Israelอิสราเอล
เปรียบเทียบ
Trust Pilot Reseller Cube
คะแนน - 8
Reseller Cube Logo
Reseller Cube

ตัวแทนจำหน่าย Cube

Basic USA
$5 /รายเดือน

รีวิว 4


ตำแหน่งเซิร์ฟเวอร์


Reseller Cube Servers in Raleighสหรัฐ
เปรียบเทียบ
Trust Pilot Univa Host
คะแนน - 8
Univa Host Logo
Univa Host

โฮสต์ Univa

E-ECONOMY
$2.99 /รายเดือน

รีวิว 3


ตำแหน่งเซิร์ฟเวอร์


Univa Host Servers in Germanyเยอรมนี Univa Host Servers in United Statesสหรัฐ
เปรียบเทียบ
Trust Pilot OperaVPS
คะแนน - 7.8
OperaVPS Logo
OperaVPS

OperaVPS

Linux 512MB
$7.99 /รายเดือน

รีวิว 3


ตำแหน่งเซิร์ฟเวอร์


OperaVPS Servers in United Kingdomประเทศอังกฤษ OperaVPS Servers in Austriaออสเตรีย OperaVPS Servers in Canadaแคนาดา OperaVPS Servers in Denmarkเดนมาร์ก OperaVPS Servers in Franceฝรั่งเศส OperaVPS Servers in Germanyเยอรมนี OperaVPS Servers in Italyอิตาลี OperaVPS Servers in Netherlandsเนเธอร์แลนด์ OperaVPS Servers in Romaniaโรมาเนีย OperaVPS Servers in United Statesสหรัฐ
เปรียบเทียบ
Trust Pilot L3Web Hosting
คะแนน - 7.6
L3Web Hosting Logo
L3Web Hosting

L3Web โฮสติ้ง

START UP
$1.99 /รายเดือน

รีวิว 2


ตำแหน่งเซิร์ฟเวอร์


L3Web Hosting Servers in Indiaอินเดีย L3Web Hosting Servers in Munichเยอรมนี L3Web Hosting Servers in Miamiสหรัฐ L3Web Hosting Servers in Singaporeสิงคโปร์ L3Web Hosting Servers in United Kingdomประเทศอังกฤษ
เปรียบเทียบ
Trust Pilot Idea Stack
คะแนน - 7.4
Idea Stack Logo
Idea Stack

ไอเดียสแต็ค

LEVEL 1
$2 /รายเดือน

รีวิว 2


ตำแหน่งเซิร์ฟเวอร์


Idea Stack Servers in Seattleสหรัฐ
เปรียบเทียบ
Trust Pilot Epic Host
คะแนน - 7.4
Epic Host Logo
Epic Host

เจ้าภาพมหากาพย์

Cloud hosting
$2.37 /รายเดือน

รีวิว 1


ตำแหน่งเซิร์ฟเวอร์


Epic Host Servers in New Delhiอินเดีย Epic Host Servers in Unionสหรัฐ
เปรียบเทียบ
Trust Pilot itanets.co.uk
คะแนน - 7
itanets.co.uk Logo
itanets.co.uk

itanets.co.uk

JSP HOSTING 1
$5.19 /รายเดือน

รีวิว 2

เปรียบเทียบ
Trust Pilot Digital Ocean
คะแนน - 3.8
Digital Ocean Logo
Digital Ocean

มหาสมุทรดิจิตอล

$5 /mo
$5 /รายเดือน

รีวิว 214

38 คูปอง

ตำแหน่งเซิร์ฟเวอร์


Digital Ocean Servers in Indiaอินเดีย Digital Ocean Servers in New Yorkสหรัฐ Digital Ocean Servers in Amsterdamเนเธอร์แลนด์ Digital Ocean Servers in Londonประเทศอังกฤษ Digital Ocean Servers in Torontoแคนาดา Digital Ocean Servers in Frankfurt am Mainเยอรมนี Digital Ocean Servers in Singaporeสิงคโปร์
เปรียบเทียบ
คะแนน - 10
HOST PRO KE Logo
HOST PRO KE

HOST PRO KE

Host Pro Starter
$9.38 /ทุกปี


ตำแหน่งเซิร์ฟเวอร์


HOST PRO KE Servers in Germanyเยอรมนี
เปรียบเทียบ
คะแนน - 9.4
Accu WebHosting Logo
Accu WebHosting

Accu WebHosting

Windows Personal Web Hosting
$2.99 /รายเดือน

19 คูปอง

ตำแหน่งเซิร์ฟเวอร์


Accu WebHosting Servers in Franceฝรั่งเศส Accu WebHosting Servers in Denverสหรัฐ Accu WebHosting Servers in Mumbaiอินเดีย Accu WebHosting Servers in Amsterdamเนเธอร์แลนด์ Accu WebHosting Servers in Frankfurt am Mainเยอรมนี Accu WebHosting Servers in Sydneyออสเตรเลีย Accu WebHosting Servers in Londonประเทศอังกฤษ Accu WebHosting Servers in Polandโปแลนด์ Accu WebHosting Servers in Canadaแคนาดา Accu WebHosting Servers in Singaporeสิงคโปร์
เปรียบเทียบ
คะแนน - 9
Be hostings Logo
Be hostings

เป็นเจ้าภาพ

StarterSSL
$3.36 /รายเดือน


ตำแหน่งเซิร์ฟเวอร์


Be hostings Servers in Brusselsเบลเยี่ยม
เปรียบเทียบ
คะแนน - 4.3
Gear Host Logo
Gear Host

โฮสต์เกียร์

CloudSite Hobby
$5 /รายเดือน


ตำแหน่งเซิร์ฟเวอร์


Gear Host Servers in Denverสหรัฐ
เปรียบเทียบ
คะแนน - 1
Mikro VPS Logo
Mikro VPS

Mikro VPS

VPS SSD 1
$4.39 /รายเดือน


ตำแหน่งเซิร์ฟเวอร์


Mikro VPS Servers in Budapestฮังการี
เปรียบเทียบ
คะแนน - 0
Simple Node Logo
Simple Node

โหนดอย่างง่าย

OpenVZ - 256MB
$3 /รายเดือน

เปรียบเทียบ

 

Node.js

 

 

Node.js คือรันไทม์ JavaScript แบบโอเพนซอร์สข้ามแพลตฟอร์มที่ทำงานบนเซิร์ฟเวอร์ นับตั้งแต่เปิดตัวในปี 2009 แพลตฟอร์มนี้ได้รับความนิยมอย่างมากและมีบทบาทสำคัญอย่างมากในด้านการพัฒนาเว็บในปัจจุบัน หากเราพิจารณาจำนวนดาวที่โครงการรวบรวมบน GitHub เป็นตัวบ่งชี้ความนิยม Node.js ซึ่งมีดาวมากกว่า 50,000 ดวงถือเป็นโครงการที่ได้รับความนิยมอย่างมาก

 

แพลตฟอร์ม Node.js สร้างขึ้นจากเอ็นจิ้น V8 JavaScript ของ Google ซึ่งใช้ในเบราว์เซอร์ Google Chrome แพลตฟอร์มนี้ส่วนใหญ่ใช้ในการสร้างเว็บเซิร์ฟเวอร์ แต่ขอบเขตไม่ จำกัด เพียงแค่นี้

 

มาดูคุณสมบัติหลักของ Node.js กัน

 

ความเร็ว

 

หนึ่งในสถานที่ท่องเที่ยวหลักของ Node.js คือความเร็ว โค้ด JavaScript ที่ดำเนินการใน Node.js อาจเร็วกว่าโค้ดที่เขียนด้วยภาษาคอมไพล์เช่น C หรือ Java ถึงสองเท่าและลำดับขนาดได้เร็วกว่าภาษาที่ตีความเช่น Python หรือ Ruby เหตุผลนี้เป็นสถาปัตยกรรมที่ไม่ปิดกั้นของแพลตฟอร์มและผลลัพธ์ที่เฉพาะเจาะจงขึ้นอยู่กับเกณฑ์มาตรฐานที่ใช้ แต่โดยรวมแล้ว Node.js เป็นแพลตฟอร์มที่เร็วมาก

 

ความเรียบง่าย

 

แพลตฟอร์ม Node.js นั้นง่ายต่อการเรียนรู้และใช้งาน ในความเป็นจริงมันง่ายมากโดยเฉพาะเมื่อเทียบกับแพลตฟอร์มเซิร์ฟเวอร์อื่น ๆ

 

JavaScript

 

JavaScript ถูกเรียกใช้ในสภาพแวดล้อม Node.js ซึ่งหมายความว่านักพัฒนาฟรอนต์เอนด์หลายล้านคนที่ใช้ JavaScript ในเบราว์เซอร์อยู่แล้วสามารถเขียนโค้ดทั้งฝั่งเซิร์ฟเวอร์และฝั่งไคลเอ็นต์ในภาษาโปรแกรมเดียวกันโดยไม่ต้องเรียนรู้เครื่องมือใหม่ทั้งหมดเพื่อย้ายไปพัฒนาฝั่งเซิร์ฟเวอร์

 

เบราว์เซอร์และเซิร์ฟเวอร์ใช้แนวคิดภาษาเดียวกัน นอกจากนี้ Node.js ยังสามารถเปลี่ยนไปใช้มาตรฐาน ECMAScript ใหม่ได้อย่างรวดเร็วเนื่องจากมีการใช้งานบนแพลตฟอร์ม

 

ไม่จำเป็นต้องรอให้ผู้ใช้รีเฟรชเบราว์เซอร์สำหรับสิ่งนี้เนื่องจาก Node.js เป็นสภาพแวดล้อมฝั่งเซิร์ฟเวอร์ที่อยู่ในการควบคุมของนักพัฒนา ด้วยเหตุนี้คุณลักษณะภาษาใหม่จะพร้อมใช้งานเมื่อคุณติดตั้ง Node.js เวอร์ชันที่รองรับ

 

เครื่องยนต์ V8

 

หัวใจสำคัญของ Node.js ในบรรดาโซลูชันอื่น ๆ คือเอ็นจิ้น V8 JavaScript แบบโอเพนซอร์สของ Google ซึ่งใช้ใน Google Chrome และเบราว์เซอร์อื่น ๆ ซึ่งหมายความว่า Node.js กำลังใช้ประโยชน์จากวิศวกรหลายพันคนที่ทำให้รันไทม์ JavaScript Chrome รวดเร็วอย่างไม่น่าเชื่อและยังคงทำงานเพื่อปรับปรุง V8

 

อะซิงโครไนซ์

 

ในภาษาโปรแกรมแบบดั้งเดิม (C, Java, Python, PHP) คำสั่งทั้งหมดจะถูกบล็อกโดยค่าเริ่มต้นเว้นแต่ผู้พัฒนาจะดูแลอย่างชัดเจนในการเรียกใช้โค้ดแบบอะซิงโครนัส ด้วยเหตุนี้ตัวอย่างเช่นในสภาพแวดล้อมดังกล่าวคุณทำการร้องขอเครือข่ายเพื่อดาวน์โหลดโค้ด JSON การดำเนินการสตรีมที่ส่งคำขอจะถูกระงับจนกว่าจะได้รับและประมวลผลการตอบกลับ

 

JavaScript ช่วยให้เขียนโค้ดแบบอะซิงโครนัสและไม่บล็อกได้ง่ายขึ้นมากโดยใช้เธรดเดียวการเรียกกลับและแนวทางที่ขับเคลื่อนด้วยเหตุการณ์ในการพัฒนา ทุกครั้งที่เราต้องดำเนินการหนักเราจะส่งการเรียกกลับไปยังกลไกที่เหมาะสมซึ่งจะถูกเรียกทันทีหลังจากเสร็จสิ้นการดำเนินการนี้ เป็นผลให้ไม่จำเป็นต้องรอผลการดำเนินการดังกล่าวเพื่อให้โปรแกรมทำงานต่อไป

 

กลไกที่คล้ายกันเกิดขึ้นในเบราว์เซอร์ เราไม่สามารถที่จะรอพูดสำหรับAJAXขอให้เสร็จสิ้นโดยไม่สามารถตอบสนองต่อการกระทำของผู้ใช้เช่นการคลิกปุ่ม เพื่อให้ผู้ใช้ทำงานกับหน้าเว็บได้สะดวกทุกอย่างทั้งการดาวน์โหลดข้อมูลจากเครือข่ายและการคลิกปุ่มประมวลผลต้องเกิดขึ้นพร้อมกันแบบเรียลไทม์

 

หากคุณเคยสร้างตัวจัดการเหตุการณ์การคลิกปุ่มแสดงว่าคุณได้ใช้เทคนิคการเขียนโปรแกรมแบบอะซิงโครนัสแล้ว

 

กลไกอะซิงโครนัสช่วยให้เซิร์ฟเวอร์ Node.js เดียวสามารถจัดการการเชื่อมต่อหลายพันการเชื่อมต่อได้พร้อมกันโดยไม่ทำให้โปรแกรมเมอร์มีภาระในการจัดการเธรดและงานเรียกใช้โค้ดแบบขนาน สิ่งดังกล่าวมักเป็นที่มาของความผิดพลาด

 

Node.js จัดเตรียมกลไก I / O พื้นฐานที่ไม่ปิดกั้นให้กับนักพัฒนาและโดยทั่วไปแล้วไลบรารีที่ใช้ในกรอบงาน Node.js จะถูกเขียนโดยใช้กระบวนทัศน์ที่ไม่ปิดกั้นสิ่งนี้ทำให้พฤติกรรมการบล็อกเป็นข้อยกเว้นแทนที่จะเป็นบรรทัดฐาน

 

เมื่อ Node.js ต้องการดำเนินการ I / O เช่นการโหลดข้อมูลจากเครือข่ายการเข้าถึงฐานข้อมูลหรือระบบไฟล์แทนที่จะบล็อกเธรดหลักเพื่อรอผลลัพธ์ของการดำเนินการดังกล่าว Node.js จะเริ่มต้น ดำเนินการและดำเนินการอย่างอื่นต่อไปจนกว่าจะได้รับผลลัพธ์ของการดำเนินการนี้

 

ห้องสมุด

 

ด้วยความง่ายและสะดวกในการทำงานกับตัวจัดการแพ็คเกจสำหรับ Node.js ที่เรียกว่า npm ระบบนิเวศ Node.js จึงเจริญรุ่งเรือง ขณะนี้มีแพ็กเกจโอเพนซอร์สมากกว่าครึ่งล้านในรีจิสทรี npm ที่นักพัฒนา Node.js ทุกคนสามารถใช้ได้อย่างอิสระ

 

หลังจากตรวจสอบคุณสมบัติหลักบางประการของแพลตฟอร์ม Node.js แล้วเรามาลองใช้งานจริงกัน เริ่มต้นด้วยการติดตั้ง

 

 

Node.js

 

 

การติดตั้ง Node.js

 

Node.js สามารถติดตั้งได้หลายวิธีซึ่งเราจะพูดถึงในอีกสักครู่ ดังนั้นแพคเกจการติดตั้งอย่างเป็นทางการสำหรับแพลตฟอร์มหลักทั้งหมดสามารถพบได้

 

มีอีกวิธีหนึ่งที่สะดวกมากในการติดตั้ง Node.js นั่นคือการใช้ตัวจัดการแพ็คเกจที่มีให้ในระบบปฏิบัติการ ตัวอย่างเช่นตัวจัดการแพ็คเกจ macOS ซึ่งเป็นมาตรฐานโดยพฤตินัยในด้านนี้เรียกว่า Homebrew

 

หากคุณมีในระบบของคุณคุณสามารถติดตั้ง Node.js โดยรันคำสั่งนี้บนบรรทัดคำสั่ง:

 

ชงติดตั้งโหนด

 

รายชื่อผู้จัดการแพ็คเกจสำหรับระบบปฏิบัติการอื่น ๆ รวมถึง Linux และ Windows มีอยู่ที่นี่

 

ตัวจัดการเวอร์ชัน Node.js ยอดนิยมคือ nvm เครื่องมือนี้ช่วยให้คุณสามารถสลับระหว่าง Node.js เวอร์ชันต่างๆได้อย่างสะดวกด้วยความช่วยเหลือเช่นติดตั้งและลอง Node.js เวอร์ชันใหม่จากนั้นหากจำเป็นให้เปลี่ยนกลับเป็นเวอร์ชันเก่า Nvm ยังมีประโยชน์ในสถานการณ์ที่คุณต้องทดสอบโค้ดบางอย่างบน Node.js เวอร์ชันเก่า

 

สำหรับผู้เริ่มต้นใช้งานโปรแกรมติดตั้ง Node.js อย่างเป็นทางการ สำหรับผู้ใช้ macOS ขอแนะนำให้ติดตั้ง Node.js โดยใช้ Homebrew เมื่อคุณติดตั้ง Node.js แล้วก็ถึงเวลาเขียน "Hello World"

 

แอปพลิเคชัน Node.js แรก

 

ตัวอย่างที่พบบ่อยที่สุดของแอปพลิเคชัน Node.js แรกคือเว็บเซิร์ฟเวอร์ธรรมดา นี่คือรหัส:

const http = ต้องใช้ ('http')

ชื่อโฮสต์ const = '127.0.0.1'

พอร์ต const = 3000

เซิร์ฟเวอร์ const = http.createServer ((req, res) = & gt; {

res.statusCode = 200

res.setHeader ('ประเภทเนื้อหา', 'ข้อความ / ธรรมดา')

res.end ('สวัสดีชาวโลก \ n')

})

server.listen (พอร์ตชื่อโฮสต์ () = & gt; {

console.log (`เซิร์ฟเวอร์ทำงานที่ http: // $ {hostname}: $ {port} /`)

})

 

ในการรันโค้ดนี้ให้บันทึกในไฟล์ server.js และรันคำสั่งต่อไปนี้ในเทอร์มินัล:

 

โหนด server.js

 

ในการตรวจสอบเซิร์ฟเวอร์ให้เปิดเบราว์เซอร์และป้อนในแถบที่อยู่ http://127.0.0.1:3000 นั่นคือที่อยู่เซิร์ฟเวอร์ที่จะแสดงในคอนโซลหลังจากเปิดตัวสำเร็จ หากทุกอย่างทำงานตามที่ควรจะเป็นหน้าเว็บจะแสดง "Hello World"

 

ลองดูตัวอย่างนี้

 

ขั้นแรกให้สังเกตว่าโค้ดมีคำสั่งเพื่อเชื่อมต่อโมดูล HTTP

 

แพลตฟอร์ม Node.js มีชุดโมดูลมาตรฐานที่ยอดเยี่ยมซึ่งรวมถึงกลไกที่พัฒนามาอย่างดีสำหรับการทำงานกับเครือข่าย

เมธอดอ็อบเจ็กต์ createServer () http สร้างเซิร์ฟเวอร์ HTTP ใหม่และส่งคืน

 

เซิร์ฟเวอร์ถูกกำหนดค่าให้รับฟังพอร์ตเฉพาะบนโฮสต์เฉพาะ เมื่อเซิร์ฟเวอร์พร้อมระบบจะโทรกลับที่เกี่ยวข้องเพื่อแจ้งให้เราทราบว่าเซิร์ฟเวอร์กำลังทำงานอยู่

เมื่อเซิร์ฟเวอร์ได้รับการร้องขอเหตุการณ์จะถูกเรียกใช้งานที่มีสองวัตถุ อย่างแรกคือคำร้องขอ (req, อ็อบเจ็กต์ http.IncomingMessage) ที่สองคือการตอบสนอง (res, อ็อบเจ็กต์ http.ServerResponse) ซึ่งเป็นกลไกที่สำคัญที่สุดในการจัดการคำขอ HTTP

 

ขั้นแรกให้ข้อมูลเกี่ยวกับคำขอแก่เรา ในตัวอย่างง่ายๆของเราเราไม่ได้ใช้ข้อมูลนี้ แต่ถ้าจำเป็นโดยใช้ออบเจ็กต์คุณจะสามารถเข้าถึงส่วนหัวของคำขอและข้อมูลที่ส่งผ่านไปได้

 

สิ่งที่สองเป็นสิ่งจำเป็นในการสร้างและส่งการตอบกลับคำขอ

 

ในกรณีนี้เราจะตอบกลับคำขอดังต่อไปนี้ ขั้นแรกเราตั้งรหัสสถานะคุณสมบัติเป็นค่า 200 ซึ่งบ่งชี้ว่าการดำเนินการสำเร็จ:

 

res.statusCode = 200

ต่อไปเราตั้งชื่อเรื่อง Content-Type:

res.setHeader ('ประเภทเนื้อหา', 'ข้อความ / ธรรมดา')

จากนั้นเราจะเตรียมการตอบสนองให้เสร็จสมบูรณ์โดยเพิ่มเนื้อหาเป็นอาร์กิวเมนต์ไปยัง method end ():

res.end ('สวัสดีชาวโลก \ n')

 

เราได้กล่าวไปแล้วว่าระบบนิเวศที่ทรงพลังได้ก่อตัวขึ้นรอบ ๆ แพลตฟอร์ม Node.js ตอนนี้เรามาพูดถึงเฟรมเวิร์กยอดนิยมและเครื่องมือช่วยเหลือสำหรับ Node.js

 

Frameworks และ Helper Tools สำหรับ Node.js

 

Node.js เป็นแพลตฟอร์มระดับต่ำ เพื่อลดความซับซ้อนของการพัฒนาและทำให้ชีวิตของโปรแกรมเมอร์ง่ายขึ้นจึงมีการสร้างไลบรารีจำนวนมาก บางคนก็ได้รับความนิยมอย่างมากเมื่อเวลาผ่านไป นี่คือรายชื่อห้องสมุดเล็ก ๆ ที่ฉันคิดว่าทำได้ดีและคุ้มค่ากับการสำรวจ:

 

ด่วน: ไลบรารีนี้มีเครื่องมือที่เรียบง่าย แต่ทรงพลังสำหรับนักพัฒนาสำหรับการสร้างเว็บเซิร์ฟเวอร์ กุญแจสู่ความสำเร็จของ Express คือแนวทางที่เรียบง่ายและมุ่งเน้นไปที่กลไกพื้นฐานฝั่งเซิร์ฟเวอร์โดยไม่ต้องพยายามกำหนดวิสัยทัศน์ของสถาปัตยกรรมเซิร์ฟเวอร์แบบ "ครบวงจร"

 

ดาวตก: เป็นเฟรมเวิร์กแบบฟูลสแต็กที่ทรงพลังซึ่งใช้แนวทางไอโซมอร์ฟิกในการพัฒนาแอปพลิเคชัน JavaScript และใช้โค้ดทั้งบนไคลเอนต์และเซิร์ฟเวอร์ ครั้งหนึ่ง Meteor เป็นเครื่องมือแบบสแตนด์อโลนที่มีทุกสิ่งที่นักพัฒนาต้องการ ตอนนี้ยังรวมเข้ากับไลบรารีส่วนหน้าเช่น React, Vue และ Angular Meteor นอกเหนือจากการพัฒนาเว็บแอปพลิเคชันทั่วไปแล้วยังสามารถใช้ในการพัฒนาอุปกรณ์เคลื่อนที่ได้อีกด้วย

 

โคอา: เว็บเฟรมเวิร์กนี้สร้างขึ้นโดยทีมงานเดียวกับที่อยู่เบื้องหลัง Express จากประสบการณ์หลายปีกับ Express ได้รับการพัฒนาโดยเน้นที่ความเรียบง่ายและกะทัดรัด โครงการนี้เกิดขึ้นเพื่อแก้ปัญหาการเปลี่ยนแปลงที่สำคัญของ Express ที่ไม่เข้ากันกับกลไกกรอบอื่น ๆ ที่อาจทำให้ชุมชนแตกแยก

 

Next.js: เฟรมเวิร์กนี้ออกแบบมาเพื่อจัดระเบียบการแสดงผลแอปพลิเคชัน React ทางฝั่งเซิร์ฟเวอร์

 

ไมโคร: เป็นไลบรารีที่มีน้ำหนักเบามากสำหรับการสร้างไมโครเซอร์วิส HTTP แบบอะซิงโครนัส

Socket.io เป็นไลบรารีสำหรับพัฒนาแอพพลิเคชั่นเครือข่ายแบบเรียลไทม์

 

ในระบบนิเวศของ Node.js คุณสามารถค้นหาไลบรารีตัวช่วยสำหรับงานเกือบทุกอย่าง อย่างที่คุณสามารถจินตนาการได้ว่าการสร้างระบบนิเวศดังกล่าวต้องใช้เวลานานมาก แพลตฟอร์ม Node.js ปรากฏในปี 2009 ในระหว่างที่มีอยู่มีหลายสิ่งหลายอย่างเกิดขึ้นซึ่งโปรแกรมเมอร์ที่ต้องการเรียนรู้แพลตฟอร์มนี้ควรทราบ

 

ประวัติโดยย่อของ Node.js

 

Node.js มีอายุ 9 ปีในปีนี้ แน่นอนว่าไม่มากนักเมื่อคุณเปรียบเทียบอายุนี้กับอายุของ JavaScript ซึ่งมีอายุ 23 ปีแล้วหรืออายุ 25 ปีของเว็บอย่างที่เราทราบกันดีหากคุณนับจากการถือกำเนิดของโมเสก เบราว์เซอร์

 

9 ปีเป็นช่วงเวลาสั้น ๆ สำหรับเทคโนโลยี แต่ตอนนี้ดูเหมือนว่าแพลตฟอร์ม Node.js จะมีอยู่ตลอดเวลา

 

ด้วย Node.js จากแพลตฟอร์มเวอร์ชันแรกเมื่ออายุเพียง 2 ปี ถึงอย่างนั้นแม้ว่าจะไม่มีข้อมูลเกี่ยวกับ Node.js มากนัก แต่ก็สามารถรู้สึกได้ว่า Node.js นั้นร้ายแรงมาก

 

ตอนนี้เรามาพูดถึงเทคโนโลยีที่อยู่เบื้องหลัง Node.js และดูไฟล์การพัฒนาหลักที่เกี่ยวข้องกับแพลตฟอร์มนี้.

 

ดังนั้น JavaScript จึงเป็นภาษาโปรแกรมที่สร้างขึ้นใน Netscape เป็นภาษาสคริปต์สำหรับจัดการเว็บเพจในเบราว์เซอร์ Netscape Navigator

ธุรกิจส่วนหนึ่งของ Netscape คือการขายเว็บเซิร์ฟเวอร์ซึ่งรวมถึงสภาพแวดล้อมที่เรียกว่า Netscape LiveWire อนุญาตให้คุณสร้างเว็บเพจแบบไดนามิกโดยใช้ JavaScript ฝั่งเซิร์ฟเวอร์

 

แนวคิดในการใช้ JS สำหรับการพัฒนาฝั่งเซิร์ฟเวอร์นั้นเก่ากว่า Node.js มาก แนวคิดนี้เกือบจะเก่าพอ ๆ กับ JavaScript แต่ในขณะนั้น JS ฝั่งเซิร์ฟเวอร์ไม่เป็นที่นิยม

 

ปัจจัยสำคัญประการหนึ่งที่ทำให้แพลตฟอร์ม Node.js แพร่หลายและเป็นที่นิยมคือเมื่อแรกปรากฏ ดังนั้นเมื่อไม่กี่ปีก่อนหน้านี้ JavaScript ได้เริ่มถูกพิจารณาว่าเป็นภาษาที่ร้ายแรง สิ่งนี้เกิดขึ้นเนื่องจากแอปพลิเคชัน Web 2.0 เช่น Google Maps หรือ Gmail ซึ่งแสดงให้โลกเห็นถึงพลังของเทคโนโลยีเว็บสมัยใหม่

 

เนื่องจากสงครามการแข่งขันของเบราว์เซอร์ซึ่งยังคงดำเนินต่อไปจนถึงทุกวันนี้ประสิทธิภาพของเอ็นจิ้น JavaScript เพิ่มขึ้นอย่างมาก ทีมพัฒนาที่อยู่เบื้องหลังเบราว์เซอร์หลักกำลังทำงานทุกวันเพื่อปรับปรุงประสิทธิภาพของโซลูชันของพวกเขาซึ่งส่งผลดีต่อ JavaScript โดยทั่วไป

 

หนึ่งในเอ็นจิ้นดังกล่าวคือ V8 ที่กล่าวถึงแล้วซึ่งใช้ในเบราว์เซอร์ Chrome และใช้ใน Node.js ถือเป็นหนึ่งในผลลัพธ์ของนักพัฒนาเบราว์เซอร์ที่พยายามหาโค้ด JavaScript ประสิทธิภาพสูง

 

แน่นอนว่าความนิยมของ Node.js ไม่เพียงขึ้นอยู่กับความบังเอิญที่โชคดีและความจริงที่ว่าแพลตฟอร์มเกิดในเวลาที่เหมาะสม เธอแนะนำโลกให้รู้จักกับแนวทางใหม่ในการพัฒนา JavaScript ฝั่งเซิร์ฟเวอร์ มาดูเหตุการณ์สำคัญในประวัติศาสตร์ของ Node.js

 

2009


  • การเกิดขึ้นของ Node.js

  • สร้างตัวแปร npm แรก

 

2010

  • ลักษณะของ Express

  • การเกิดขึ้นของ Socket.io

 

2011


  • รุ่น Npm 1.0

  • บริษัท ใหญ่ ๆ เช่น LinkedIn และ Uber ได้เริ่มใช้ Node.js

 

2012


  • ความนิยมที่เพิ่มขึ้นอย่างรวดเร็วของ Node.js

 

2013


  • การเกิดขึ้นของ Ghost ซึ่งเป็นแพลตฟอร์มหลักแรกสำหรับสิ่งพิมพ์โดยใช้ Node.js

  • Koa ปล่อย

 

2014


  • มีการจัดงานละครในปีนี้ โครงการ IO.js ปรากฏขึ้นซึ่งเป็นทางแยกของ Node.js โดยมีวัตถุประสงค์เพื่อแนะนำการสนับสนุน ES6 และเร่งการพัฒนาแพลตฟอร์ม

 

2015


  • ก่อตั้งมูลนิธิ Node.js

  • การรวม IO.js และ Node.js

  • ใน npm สามารถทำงานกับโมดูลส่วนตัวได้

  • Yield Node.js 4 (ควรสังเกตว่าเวอร์ชัน 1, 2 และ 3 จากแพลตฟอร์มไม่ได้)

 

2016


  • เหตุการณ์หีบห่อด้านซ้าย

  • การเกิดขึ้นของเส้นด้าย

  • Node.js 6 รีลีส

 

2017


  • Npm เริ่มให้ความสำคัญกับความปลอดภัยมากขึ้น

  • Node.js 8 รีลีส

  • การเกิดขึ้นของการสนับสนุน HTTP / 2

  • V8 ได้รับการยอมรับอย่างเป็นทางการว่าเป็นเอ็นจิ้น JS ที่ออกแบบมาไม่เพียง แต่สำหรับ Chrome เท่านั้น แต่ยังรวมถึงโหนดด้วย

  • มีการดาวน์โหลด 3 พันล้าน npm ทุกสัปดาห์

 

2018


  • Node.js 10 รีลีส

  • รองรับโมดูล ES

  • การสนับสนุน mjs ทดลอง