คุ้มค่าที่จะนำเซิร์ฟเวอร์ nodeJS กลับมาใช้ใหม่เพื่อใช้ Connect (โดยเฉพาะอย่างยิ่งสำหรับ everyauth) หรือไม่

ในช่วง 6 เดือนที่ผ่านมา ฉันทำงานกับแอป nodeJS ของตัวเอง ซึ่งฉันได้สร้างทุกอย่างด้วยตัวเองตั้งแต่ต้นจนจบ มีเพียงสองสิ่งที่เซิร์ฟเวอร์ของฉันทำ เนื่องจากงานส่วนใหญ่ในแอปของฉันทำที่ส่วนหน้า

สิ่งหนึ่งที่ฉันกำลังพิจารณานำไปใช้คือการเข้าสู่ระบบของผู้ใช้ + ระบบตรวจสอบสิทธิ์ Facebook สำหรับแอป ดูเหมือนว่าทุกๆ auth จะเป็นเฟรมเวิร์กที่แข็งแกร่งสำหรับสิ่งนี้มากกว่าสิ่งอื่นใดที่มีอยู่ อย่างไรก็ตาม คุณต้องมี Express หรือ Connect เพื่อใช้งาน

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

และสำหรับผู้ที่ใช้ Connect - คุณสมบัติอื่น ๆ ที่นำเสนอมีประโยชน์เพียงใด? มันคุ้มค่าที่จะ gzipping ข้อมูลที่เซิร์ฟเวอร์ส่งคืนหรือไม่ เซิร์ฟเวอร์ไฟล์คงที่เร็วกว่าหรือแตกต่างจากโค้ด nodejs ปกติที่ทำสิ่งเดียวกันหรือไม่

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

ดีที่สุด
ซามิ

การแก้ไข - หากคำขอแต่ละรายการที่เซิร์ฟเวอร์ของฉันได้รับในบางจุดเกี่ยวข้องกับการเชื่อมต่อกับ MongoDB โดยใช้ไดรเวอร์ node-mongodb-native สิ่งนี้จะเปลี่ยนแปลงอะไรหรือไม่ ฉันสับสนเล็กน้อยว่าโดยพื้นฐานแล้วฉันสามารถมีโค้ดที่ฉันเขียนไว้แล้วเป็นโมดูลประเภทหนึ่งที่ทำหน้าที่เป็นรายการมิดเดิลแวร์ตัวใดตัวหนึ่งที่ฉันสามารถเพิ่มเพื่อเชื่อมต่อได้ หากประโยคนี้แสดงให้เห็นว่าฉันมีความเข้าใจผิดโดยสิ้นเชิงเกี่ยวกับสิ่งที่การเชื่อมต่อเกิดขึ้น ฉันขอขอบคุณสำหรับการชี้แจง


person thisissami    schedule 14.11.2011    source แหล่งที่มา


คำตอบ (2)


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

Connect และ Express มีประโยชน์มากทั้งคู่ ฉันยังทำงานร่วมกับ Everyauth อีกด้วย และบอกได้เลยว่ามันง่ายกว่าการตั้งค่าการใช้งาน OAuth ทั้งหมดแยกกันมาก (ซึ่งฉันได้ทำไปแล้ว)

นี่คือลิงค์บางส่วน:

http://howtonode.org/connect-it

http://tjholowaychuk.com/post/664516126/connect-middleware-for-nodejs

คู่มือด่วน: http://expressjs.com/guide.html

และคำถามสแต็กที่คล้ายกัน แต่ไม่ซ้ำกัน: Node.js คืออะไร ' เชื่อมต่อ เอ็กซ์เพรส และมิดเดิลแวร์?

person Chris Biscardi    schedule 14.11.2011
comment
ขอบคุณสำหรับคำตอบนี้คริส ในกรณีนั้น เพียงเพื่อให้แน่ใจว่าฉันเข้าใจวิธีการทำงาน ฉันสามารถแทนที่โมดูล http ด้วยโมดูลเชื่อมต่อได้ และโค้ดของฉันควรจะทำงานเหมือนกันหรือไม่ แล้วมันก็แค่เรื่องของการเพิ่มโมดูลก่อนที่จะถึงโค้ดของฉันเพื่อเพิ่มฟังก์ชันการทำงานเพิ่มเติม หากเป็นกรณีนี้ ฉันก็รู้สึกโง่ที่ไม่ได้ใช้มันอยู่แล้ว - person thisissami; 14.11.2011
comment
คุณไม่ได้เปลี่ยนโมดูล http การเชื่อมต่อขยายเซิร์ฟเวอร์ http แต่ใช่ คุณจะแทนที่โค้ด http ของคุณด้วยโค้ดการเชื่อมต่อ และมันเพียงเพิ่มฟังก์ชันการทำงานเพิ่มเติมบางอย่างเท่านั้น - person Chris Biscardi; 15.11.2011
comment
@thisissami ใช่ถูกต้อง แทนที่จะเรียก http.createServer(...) คุณเรียก Connect.createServer() อ็อบเจ็กต์ที่ส่งคืนจาก Connect.createServer() ทำงานเหมือนกับที่ส่งคืนจากโมดูล http แต่ยังมีฟังก์ชัน use() เพิ่มเติมซึ่งใช้มิดเดิลแวร์กับคำขอที่เข้ามาแต่ละรายการ - person Jared Hanson; 15.11.2011
comment
ฮ่าฮ่า การเปลี่ยนแปลงนั้นเรียบง่ายอย่างน่าสมเพช เพียงแค่ต้องเปลี่ยน http 3 อินสแตนซ์ที่แตกต่างกันของฉันเพื่อเชื่อมต่อและเพิ่มรายการถัดไปในการเรียกกลับไปยังเซิร์ฟเวอร์ - person thisissami; 15.11.2011

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

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

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

person Jared Hanson    schedule 14.11.2011