ค้นหาเว็บไซต์

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 - เรียนเขียนโค้ดฟรี (แหล่งที่มา)
  • เครื่องมือ Node.js ที่มีประโยชน์, บทเรียน และแหล่งข้อมูล
  • Runnable.com - เหมือน jsfiddle แต่สำหรับฝั่งเซิร์ฟเวอร์ด้วย
  • เริ่มต้นใช้งาน Node.js บน Heroku
  • เริ่มต้นกับ Node.js บน Open-Shift
  • การตรวจสอบสิทธิ์โดยใช้พาสปอร์ต

คำตอบ #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 ที่เริ่มออกมาแล้ว

บทความที่เกี่ยวข้อง