javascript - ฉันจะเริ่มต้นกับ Node.js ได้อย่างไร
มีแหล่งข้อมูลดีๆ สำหรับเริ่มต้นกับ Node.JS ไหม? มีบทเรียน บล็อก หรือหนังสือดีๆ บ้างไหม?
แน่นอน ฉันได้เยี่ยมชมเว็บไซต์อย่างเป็นทางการของมันที่ http://nodejs.org/ แล้ว แต่ฉันไม่คิดว่าคู่มือเอกสารที่พวกเขามีจะเป็นจุดเริ่มต้นที่ดี
คำตอบ #1
คุณสามารถติดตามบทเรียนเหล่านี้เพื่อเริ่มต้นได้:
บทแนะนำ
บทเรียนแบบโต้ตอบของ NodeSchool.io
ศิลปะของ Node (บทนำสู่ Node.js)
สวัสดีชาวโลก
เซิร์ฟเวอร์เว็บ Hello World (จ่ายเงิน)
คู่มือ Node.js
สร้างบล็อกด้วย Node.js, Express และ MongoDB
Node.js สำหรับผู้เริ่มต้น
เรียนรู้ Node.js อย่างครบถ้วนและมั่นใจ
โมเดลการประมวลผลของ Node JS - โมเดลแบบเธรดเดี่ยวพร้อมสถาปัตยกรรมวงจรอีเวนต์
ซีรีส์ Node Hero ของ RisingStack
บทเรียน Node.js ที่ยอดเยี่ยมที่ได้รับการโหวตโดยชุมชนโปรแกรมเมอร์
บทเรียน Node.js
30 วันของ Node
เว็บไซต์สำหรับนักพัฒนา
- เว็บไซต์สำหรับนักพัฒนาของ Joyent สำหรับ Node
- ครูสอนบทเรียน
วิดีโอ
- Node Tuts (วิดีโอสอน Node.js)
- บทนำสู่ Node.js (เป็นภาษาเยอรมัน)
- บทนำสู่ Node.js กับ ไรอัน ดาล์
- Node.js: ความบริสุทธิ์แบบไม่ประสานเวลานำไปสู่การพัฒนาที่รวดเร็วขึ้น
- การเขียนโปรแกรมแบบขนานด้วย Node.js
- JavaScript ฝั่งเซิร์ฟเวอร์ด้วย Node, Connect & Express
- มองครั้งแรกของ Node.js
- Node.js กับ MongoDB
- การบรรยายด้านเทคโนโลยีของไรอัน ดาห์ลที่กูเกิล
- เว็บเรียลไทม์ด้วย Node.js
- บทเรียน Node.js สำหรับผู้เริ่มต้น
- คอร์ส Pluralsight (แบบชำระเงิน)
- Udemy เรียนรู้และเข้าใจ Nodejs (แบบชำระเงิน)
- เดอะ นิว บอสตัน
สกรีนแคสต์
- เรียนรู้ทุกโหนด
- คู่มือน็อด
- บทนำสู่ Node.js (เป็นภาษาเยอรมัน)
- NodeCasts
หนังสือ
- หนังสือเริ่มต้น Node
- การเชี่ยวชาญ Node.js
- เริ่มต้นใช้งานกับ Node.js
- Node.js ในการปฏิบัติ
- ทำลาย Node.js: JavaScript ทุกที่
- Node.js และ บริษัท (เป็นภาษาเยอรมัน)
- สอนตัวเอง Node.js กับแซมใน 24 ชั่วโมง
- รายการหนังสือ JavaScript ฟรีที่ละเอียดที่สุด
- หนังสือโหนดของมิกซู
- Node.js อย่างถูกวิธี: JavaScript ฝั่งเซิร์ฟเวอร์ที่ใช้งานได้จริงและสามารถขยายได้
- การเริ่มต้นพัฒนาเว็บด้วย Node.js
- การพัฒนาเว็บด้วย Node
- NodeJS เพื่อการครอบงำสากลอย่างชอบธรรม!
หลักสูตร
- เว็บเรียลไทม์ด้วย Node.js
- Essential Node.js จาก DevelopMentor
- Freecodecamp - เรียนรู้การเขียนโค้ดฟรี
- Udemy - คอร์ส Node.js Developer แบบสมบูรณ์ (ฉบับที่ 3) (ต้องชำระเงิน)
บล็อก
- บล็อก Node.js
- วิธีใช้ Node
- เดลี่เจเอส
- บล็อก Nodejitsu
- เอกสารไวท์เปเปอร์ของไรอัน วิลคอกซ์
- เดฟธอต
พอดแคสต์
- NodeUp
แหล่งข้อมูล JavaScript
- วิดีโอของ Crockford (ต้องดู!)
- รูปแบบการออกแบบ JavaScript ที่จำเป็นสำหรับผู้เริ่มต้น
- สวนจาวาสคริปต์
- หนังสือรูปแบบ JavaScript
- หนังสือ JavaScript: ส่วนดี
- หนังสือ Eloquent JavaScript
โมดูล Node.js
- ค้นหาโมดูล Node.js ที่ลงทะเบียนแล้ว
- รายการที่คัดสรรของไลบรารี Node.js ที่น่าทึ่ง
- รายการวิกิบน GitHub/Joyent/Node.js (เริ่มจากที่นี่ทีหลัง!)
อื่นๆ
- JSApp.US - เหมือน jsfiddle แต่สำหรับ Node.js
- โหนดกับ VJET JS (สำหรับ Eclipse IDE)
สถานที่ผลิตที่มีแหล่งข้อมูลเผยแพร่:
- แฮกกาธอน Node Knockout (ต้นฉบับ)
- Freecodecamp - เรียนเขียนโค้ดฟรี (แหล่งที่มา)
คำตอบ #2
ก่อนอื่น เรียนรู้แนวคิดหลักของ Node.js:
คุณจะต้องเข้าใจรูปแบบการเขียนโค้ดแบบอะซิงโครนัสที่ Node.js สนับสนุน
อะซิงค์ != การทำงานพร้อมกัน เข้าใจลูปเหตุการณ์ของ Node.js!
Node.js ใช้ require() แบบ CommonJS สำหรับการโหลดโค้ด; อาจจะแตกต่างจากที่คุณคุ้นเคยสักหน่อย
ทำความคุ้นเคยกับไลบรารีมาตรฐานของ Node.js
จากนั้น คุณจะต้องการดูว่าชุมชนมีอะไรให้บ้าง:
มาตรฐานทองคำสำหรับการจัดการแพ็กเกจ Node.js คือ NPM
มันคือเครื่องมือบรรทัดคำสั่งสำหรับจัดการการพึ่งพาของโครงการของคุณ
ตรวจสอบให้แน่ใจว่าคุณเข้าใจว่า Node.js และ NPM ทำงานร่วมกับโปรเจกต์ของคุณผ่านโฟลเดอร์ node_modules และไฟล์ package.json อย่างไร
NPM ยังเป็นทะเบียนของแพ็กเกจ Node.js เกือบทุกตัวที่มีอยู่
สุดท้าย คุณคงอยากรู้ว่าแพ็กเกจที่เป็นที่นิยมสำหรับงานต่างๆ บางอย่างคืออะไร:
เครื่องมือที่มีประโยชน์สำหรับทุกโครงการ:
- Underscore มีวิธีการยูทิลิตี้หลักแทบทุกอย่างที่คุณต้องการ
- Lo-Dash เป็นโคลนของ Underscore ที่มีเป้าหมายเพื่อให้เร็วขึ้น ปรับแต่งได้มากขึ้น และมีฟังก์ชันหลายอย่างที่ Underscore ไม่มี เวอร์ชันบางรุ่นของมันสามารถใช้แทน Underscore ได้โดยตรง
- TypeScript ทำให้ JavaScript ทนได้มากขึ้น ในขณะเดียวกันก็ช่วยให้คุณพ้นจากปัญหา!
- JSHint เป็นเครื่องมือตรวจสอบโค้ดที่จะช่วยคุณประหยัดเวลาอย่างมากในการหาข้อผิดพลาดโง่ ๆ ค้นหาโปรแกรมเสริมสำหรับตัวแก้ไขข้อความของคุณที่จะรันมันอัตโนมัติบนโค้ดของคุณ
การทดสอบหน่วย:
- Mocha เป็นกรอบการทดสอบที่ได้รับความนิยม
- Vows เป็นมุมมองที่ยอดเยี่ยมเกี่ยวกับการทดสอบแบบอะซิงโครนัส แม้ว่าจะค่อนข้างเก่าแล้ว
- Expresso เป็นกรอบงานทดสอบหน่วยแบบดั้งเดิมมากกว่า
- node-unit เป็นอีกหนึ่งเฟรมเวิร์กการทดสอบหน่วยที่ค่อนข้างดั้งเดิม
- AVA เป็นตัวรันทดสอบใหม่ที่มี Babel ในตัวและสามารถรันทดสอบพร้อมกันได้
โครงสร้างเว็บ:
- Express.js เป็นเฟรมเวิร์กที่ได้รับความนิยมมากที่สุดโดยไม่ต้องสงสัย
- Koa เป็นเฟรมเวิร์กเว็บใหม่ที่ออกแบบโดยทีมงานเบื้องหลัง Express.js ซึ่งมีเป้าหมายที่จะเป็นพื้นฐานสำหรับเว็บแอปพลิเคชันและ API ที่มีขนาดเล็กกว่า แสดงออกได้ชัดเจนกว่า และมีความแข็งแกร่งมากกว่า
- sails.js เป็นเฟรมเวิร์ก MVC ที่ได้รับความนิยมมากที่สุดสำหรับ Node.js และสร้างขึ้นบน Express ถูกออกแบบมาเพื่อเลียนแบบรูปแบบ MVC ที่คุ้นเคยของเฟรมเวิร์กเช่น Ruby on Rails แต่มีการรองรับความต้องการของแอปสมัยใหม่: API ที่ขับเคลื่อนด้วยข้อมูลพร้อมสถาปัตยกรรมแบบบริการที่สามารถขยายได้
- Meteor รวบรวม jQuery, Handlebars, Node.js, WebSocket, MongoDB และ DDP เข้าด้วยกัน และส่งเสริมแนวทางปฏิบัติตามมาตรฐานมากกว่าการตั้งค่ากำหนดเองโดยไม่ใช่การลอกเลียนแบบ Ruby on Rails
- Tower (เลิกใช้แล้ว) เป็นการสร้างนามธรรมของส่วนบนของ Express.js ที่มุ่งหวังที่จะเป็นสำเนาของ Ruby on Rails
- Geddy เป็นมุมมองอีกแบบหนึ่งของเว็บเฟรมเวิร์ก
- RailwayJS เป็นเฟรมเวิร์กเว็บแบบ MVC ที่ได้รับแรงบันดาลใจจาก Ruby on Rails
- Sleek.js เป็นเว็บเฟรมเวิร์กที่เรียบง่าย สร้างขึ้นบน Express.js
- Hapi เป็นเฟรมเวิร์กที่เน้นการกำหนดค่าพร้อมการสนับสนุนในตัวสำหรับการตรวจสอบความถูกต้องของข้อมูล แคชชิง การยืนยันตัวตน เป็นต้น
Trails คือกรอบงานเว็บแอปพลิเคชันสมัยใหม่ มันสร้างขึ้นบนพื้นฐานของ Rails และ Grails เพื่อเร่งการพัฒนาโดยยึดตามปรัชญาการออกแบบที่เรียบง่าย ใช้แนวทางตามข้อตกลงและขับเคลื่อนด้วย API
Danf เป็นเฟรมเวิร์ก OOP แบบเต็มรูปแบบที่มีคุณสมบัติหลายอย่างเพื่อสร้างแอปพลิเคชันที่สามารถขยายได้ ดูแลรักษาได้ ทดสอบได้ และมีประสิทธิภาพ และอนุญาตให้เขียนโค้ดในลักษณะเดียวกันทั้งฝั่งเซิร์ฟเวอร์ (Node.js) และฝั่งไคลเอนต์ (เบราว์เซอร์)
Derbyjs เป็นเฟรมเวิร์ก JavaScript แบบเต็มสแต็กที่มีปฏิกิริยา พวกเขาใช้รูปแบบเช่นการเขียนโปรแกรมแบบปฏิกิริยาและ JavaScript แบบ isomorphic มานานแล้ว
Loopback.io เป็นเฟรมเวิร์ก Node.js ที่ทรงพลังสำหรับการสร้าง API และการเชื่อมต่อกับแหล่งข้อมูลหลังบ้านได้อย่างง่ายดาย มันมี SDK ของ Angular.js และให้ SDK สำหรับ iOS และ Android
เครื่องมือสำหรับเว็บเฟรมเวิร์ก:
- Jade คือ HAML/Slim ในโลกของ Node.js
- EJS เป็นภาษาการสร้างเทมเพลตที่มีลักษณะดั้งเดิมมากกว่า
- อย่าลืมเกี่ยวกับเมธอดเทมเพลตของ Underscore!
เครือข่าย:
- Connect คือ Rack หรือ WSGI ของโลก Node.js
- Request เป็นไลบรารีคำขอ HTTP ที่ได้รับความนิยมมาก
- socket.io มีประโยชน์สำหรับการสร้างเซิร์ฟเวอร์ WebSocket
การโต้ตอบบรรทัดคำสั่ง:
- minimist แค่การแยกวิเคราะห์อาร์กิวเมนต์บรรทัดคำสั่ง
- Yargs เป็นไลบรารีที่ทรงพลังสำหรับการวิเคราะห์อาร์กิวเมนต์ของบรรทัดคำสั่ง
- Commander.js เป็นโซลูชันครบวงจรสำหรับการสร้างแอปพลิเคชันบรรทัดคำสั่งแบบใช้งานครั้งเดียว
- Vorpal.js เป็นเฟรมเวิร์กสำหรับสร้างแอปพลิเคชันบรรทัดคำสั่งที่สมบูรณ์และน่าดื่มด่ำ
- ชอล์กทำให้ผลลัพธ์ CLI ของคุณสวยงาม
ตัวสร้างรหัส:
- เครื่องมือ Yeoman Scaffolding จากบรรทัดคำสั่ง
- Skaffolder เครื่องมือสร้างโค้ดพร้อมอินเทอร์เฟซแบบภาพและบรรทัดคำสั่ง มันสร้างแอปพลิเคชัน CRUD ที่ปรับแต่งได้โดยเริ่มจากโครงสร้างฐานข้อมูลหรือไฟล์ OpenAPI 3.0 YAML
ทำงานกับสตรีม:
- มิสซิสซิปปี้ สิ่งที่คุณพลาดเกี่ยวกับลำธารทุกอย่าง
- https://github.com/calvinmetcalf/streams-a-love-story
- http://maxogden.com/node-streams.html
- https://github.com/substack/stream-handbook
- วิธีที่สตรีมช่วยเพิ่มประสิทธิภาพของ Node.js
คำตอบ #3
ใช้แหล่งที่มา ลุค
ไม่ใช่ แต่จริงๆ แล้วฉันพบว่าการสร้าง Node.js จากซอร์ส รันการทดสอบ และดูผลการวัดประสิทธิภาพทำให้ฉันได้เริ่มต้นในแนวทางที่ถูกต้อง จากนั้น ไฟล์ .js ในไดเรกทอรี lib เป็นจุดที่ดีในการดู โดยเฉพาะไฟล์ http.js
อัปเดต: ฉันเขียนคำตอบนี้เมื่อมากกว่าหนึ่งปีที่แล้ว และตั้งแต่นั้นมาก็มีการเพิ่มขึ้นอย่างมากในจำนวนแหล่งข้อมูลที่ยอดเยี่ยมสำหรับผู้ที่กำลังเรียนรู้ Node.js แม้ว่าฉันยังคงเชื่อว่าการเข้าไปดูซอร์สโค้ดโดยตรงนั้นคุ้มค่า แต่ฉันคิดว่าตอนนี้มีวิธีที่ดีกว่าในการเริ่มต้น ฉันจะแนะนำหนังสือบางเล่มเกี่ยวกับ Node.js ที่เริ่มออกมาแล้ว