รู้เบื้องต้นเกี่ยวกับ NodeJS + SailsJS

สวัสดีทั้งชุมชน! ฉันชื่อบรูโนและฉันเคยอยู่มาแล้ว DesdeLinux ในฐานะผู้ใช้ ถึงเวลาที่ฉันจะโพสต์ครั้งแรกในชุมชนนี้🙂

วันนี้ผมนำคำแนะนำเกี่ยวกับ NodeJS y ใบเรือ.js

Node.js

มันเป็นสภาพแวดล้อมการเขียนโปรแกรมตามภาษา จาวาสคริปต์ ด้วยสถาปัตยกรรมเชิงเหตุการณ์เหมาะสำหรับการเขียนโปรแกรมแบบอะซิงโครนัส โหนดขึ้นอยู่กับเครื่องยนต์ V8 ของ Google
มันรักษาชุมชนโอเพ่นซอร์สที่ใช้งานอยู่ซึ่งได้เขียนโมดูลมากมายเพื่ออำนวยความสะดวกในการพัฒนาของเรา
หนึ่งในนั้นคือ socket.io (อนุญาตให้เซิร์ฟเวอร์ส่งการอัปเดตแบบเรียลไทม์ไปยังไคลเอนต์เช่นการติดตาม GPS)

มันคืออะไร?

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

ทำไมต้องโหน?

1 คือ โอเพนซอร์ส.
2) หากคุณเคยคิดที่จะใช้ภาษาเดียวทั้งบนเซิร์ฟเวอร์และฝั่งไคลเอ็นต์นี่คือวิธีแก้ปัญหา
3) ความสามารถในการปรับขนาดและ การเห็นพ้องกัน.
4) ฯลฯ

ใบเรือ.js

ฉันเลือกใบเรือเนื่องจากลักษณะดังต่อไปนี้นอกเหนือจากการอ่านได้มากที่สุดในแง่ของรหัสในมุมมองของฉัน ตา! มีอยู่ มากมาย เฟรมเวิร์กสำหรับโหนดตามที่เป็นอยู่ รวดเร็ว , เชิงมุม, เกดดี้ฯลฯ

สกรีนช็อต - 080913 - 13:21:50

Sails คืออะไร?

มันเป็น กรอบ MVC ที่เลียนแบบแบบจำลองของ ทับทิมบนราง (ใช่คุณได้ยินถูกต้อง: D) สำหรับการสร้างแอปพลิเคชันขนาดเล็กหรือขนาดใหญ่ได้อย่างรวดเร็วง่ายดายและปลอดภัย เพิ่มเติม ได้รับการสนับสนุนสำหรับข้อกำหนดการใช้งานที่ทันสมัย. ไม่สำคัญว่าคุณจะใช้ฐานข้อมูลใด Sails เป็นชั้นของนามธรรมซึ่งทำให้ทางเลือกของมันไม่แยแส Sails มี:

- ความสามารถในการสร้าง RESTful JSON API อัตโนมัติ
- ประกอบด้วยโมดูล Socket.io
- สร้างเส้นทาง อัตโนมัติ สำหรับคอนโทรลเลอร์ของคุณ
- ให้ระบบของ การรับรอง ของผู้ใช้และ การควบคุมการเข้าถึง ตามบทบาท
- เสี้ยงฮึดฮัดแสดงความไม่พอใจ เป็น Task Runner (งานอัตโนมัติเช่นการย่อขนาดการคอมไพล์การทดสอบ ฯลฯ )
- เนื้อหา: ไฟล์ทั้งหมดในไดเรกทอรีที่เกี่ยวข้อง (css, js) คือ รวมเป็นไฟล์เดียวและย่อขนาด, เพื่อลด อย่างมาก การโหลดหน้าเว็บและจำนวนคำขอเบราว์เซอร์ที่ จำกัด

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

ป้อมปราการที่ฉันทำด้วย Xubuntu 13.04

sudo apt-get install python-software-properties python g++ make
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs

การติดตั้ง Sails.Js

เวอร์ชันเสถียรล่าสุด:
sudo npm -g install sails

ณ จุดนี้โดยไม่มีข้อผิดพลาดเราสร้างโครงการใหม่! 😀

สร้างโครงกระดูกไดเร็กทอรี:
sails new testProject

เราเข้าสู่โครงการของเรา:
cd testProject

เราเริ่มเซิร์ฟเวอร์:
sails lift

เย้เย้เย้เย้! เราเข้ามา http://localhost:1337/

สกรีนช็อต - 080913 - 13:02:34

โครงสร้างของไดเรกทอรีของเราควรมีลักษณะดังนี้:
สกรีนช็อต - 080913 - 13:07:57

ไฟ:
- ไดรเวอร์
- อะแดปเตอร์
- โมเดล
- นโยบาย
- บริการ

ทรัพย์สิน:
- ภาพ
- js
- รูปแบบ
favicon
หุ่นยนต์

กำหนดค่า:
- ท้องถิ่น
404.js, 500.js … ..
เส้นทาง js
เซสชัน.js
ซ็อกเก็ต js …… ..

NODE_MODULES:
- ejs (เครื่องมือแม่แบบ)
- ฮึดฮัด
- มองโลกในแง่ดี
- ใบเรือดิสก์

มุมมอง:
- หน้าแรก (นี่คือเทมเพลตรูท localhost)
- 404.ejs
- 500.ejs
- layout.ejs (สำหรับผู้ที่ใช้ราง layouts.ejs จะทำงาน เช่น กว่า layouts.html. *)

EJS (Embedded Javascript) เป็นเครื่องมือแม่แบบ แต่ไม่ใช่เครื่องมือเดียว ฉันชอบ JADE เป็นพิเศษมากกว่า

ครีบ

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

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


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   อาเธอร์เชลบี dijo

    ฉันประหลาดใจกับความซื่อสัตย์ที่เลียนแบบ RoR แม้ว่าหลายคนจะเกลียด RoR สำหรับประสิทธิภาพที่ไม่ดี (โดยไม่ต้องกำหนดค่า)

    หัวข้อนี้น่าสนใจมากฉันหวังว่าคุณจะพัฒนาต่อไปขอแสดงความยินดี

    1.    นาโน dijo

      ฉันไม่ได้เกลียด RoR พูดตามตรงประเด็นก็คือปรัชญาของทับทิมที่ว่า "มีหลายวิธีในการทำสิ่งเดียวกัน" มักจะเป็นปัญหาเพราะไม่ใช่ทุกวิธีที่มีประสิทธิภาพมากที่สุดและเมื่อคุณต้องการตอบคำถาม ในหลาย ๆ กรณีคุณมีปัญหาเล็กน้อยที่ทุกคนตอบคุณด้วยวิธีการที่แตกต่างกันในการทำเช่นเดียวกันและคุณมักจะสับสนมากขึ้น D:

      เกี่ยวกับเฟรมเวิร์กนี้สำหรับ Node เนื่องจากไม่ได้ใช้สำหรับสิ่งที่ใหญ่โตหรือใหญ่โตจึงใช้ Node ร่วมกับเฟรมอื่น ๆ เช่น Django สำหรับบางสิ่งบางอย่างฉันคิดว่าตัวอย่างของ Mejorando.la เป็นแบบนี้พวกเขาสร้างทั้งไซต์และจัดการฐานของมัน ของข้อมูลกับ Django แต่ปัญหาเรียลไทม์ยังคงอยู่ที่ Node แม้ว่าฉันจะไม่แน่ใจดังนั้นฉันจึงไม่สามารถพูดถึงเรื่องนี้ได้มากเกินไป

      1.    แจมินซามูเอล dijo

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

        1.    Bruno cascio dijo

          NodeJS ไม่เหมือนกับ Django หรือ PHP หรือ Ruby แต่เป็นเซิร์ฟเวอร์เช่น Apache, Nginx เป็นต้น

          Sails เป็นเฟรมเวิร์กที่ใช้ nodejs และ express (เฟรมเวิร์กอื่น) ร่วมกับโมดูลบางอย่างเช่น socket.io สำหรับการสร้างเว็บแอปพลิเคชัน

          ทักทาย!

          1.    อาร์โนลโด RLF dijo

            ดังนั้นหากคุณต้องการรวมการแชทที่สร้างด้วย nodejs ด้วยเพจใน python ด้วย Django (เพื่อดำเนินการต่อด้วยตัวอย่างการปรับปรุง.la) คุณจะต้องใช้เฟรมหรือกำหนดให้กับ apache (ถ้าเป็นเช่นนั้นฉันมี ไม่รู้ว่าเซิร์ฟเวอร์ใดใช้ python) เส้นทาง http://miweb.com ยา node.js http://miweb.com/chat และสื่อสารกับพวกเขา

  2.   แจมินซามูเอล dijo

    เฮ้ยน่าสนใจสุด ๆ ….

    สิ่งที่ฉันยังทำไม่เสร็จคือทำไม Node JS จึงใช้กับเว็บ

    1.    อาร์โนลโด RLF dijo

      เป็นอีกทางเลือกหนึ่งของ apache โดยมีข้อได้เปรียบในการใช้งานแบบเรียลไทม์ (แอปพลิเคชันที่สื่อสารตลอดเวลาไม่ใช่เฉพาะเมื่อมีการร้องขอ)

      1.    เดวิดโกเมซ dijo

        NodeJS ไม่ใช่ทางเลือก (หรือทดแทน) สำหรับ Apache, NGINX หรือเว็บเซิร์ฟเวอร์อื่น ๆ NodeJS เป็นล่าม JavaScript สำหรับเซิร์ฟเวอร์ช่วยให้คุณสามารถสร้างแอปพลิเคชันด้วยภาษานี้ซึ่งอาจต้องใช้ภาษาเช่น Java, Python, Ruby หรือ PHP

        1.    Bruno cascio dijo

          ใช่บางทีฉันอาจแสดงออกว่าตัวเองผิด สิ่งที่ฉันต้องการจะสื่อคือ node.js รันเซิร์ฟเวอร์ของตัวเองและไม่จำเป็นต้องให้บุคคลที่สามทำงาน (apache, nginx, cherokee ฯลฯ )

          ทักทาย!

  3.   อาร์โนลโด RLF dijo

    ดีมากฉันหวังว่าจะมีบทเรียนเพิ่มเติมเพื่อให้สามารถติดตาม node.js และทำบางสิ่งได้แบบเรียลไทม์

    1.    Bruno cascio dijo

      นี่คือหนังสือความยาว 200 หน้าพร้อมคำแนะนำเกี่ยวกับ Node.js ผ่าน Koans มันมีเข้าสู่ Node.js และ "ความละเอียด" ของส่วนหนึ่งของปัญหาที่วางไว้ (ตัวอย่างคือ twitter) โดยมี Express เป็นเฟรมเวิร์กส่วนหัว… ..

      http://nodejskoans.com/

      PS: Sails ทำบนพื้นฐาน Express โดยปกติส่วนใหญ่จะเป็น

      ทักทาย!

  4.   Elav dijo

    ผลงานยอดเยี่ยม Bruno .. ยินดีต้อนรับครับ😀

    1.    Bruno cascio dijo

      ขอบคุณคุณและชุมชนทั้งหมดที่ให้เป็นส่วนหนึ่งของมัน🙂สวัสดี!

  5.   auroszx dijo

    บรูโนที่น่าสนใจมาก

    1.    Bruno cascio dijo

      ขอบคุณ!

  6.   ผู้หญิงฟองน้ำ dijo

    บทความยอดเยี่ยม ขอบคุณมาก.

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

    ขอขอบคุณและขอแสดงความยินดีสำหรับบทความ

    อาศิรพจน์
    เอลวิร่า.

    1.    Bruno cascio dijo

      สวัสดี Elvira!

      เกี่ยวกับสิ่งที่คุณพูดถึงไม่ว่าจะเป็น Sailsjs หรือกรอบงานอื่น ๆ สิ่งที่คุณเสนอนั้นเกี่ยวข้องกับการสร้างแบบจำลองของข้อมูลและข้อ จำกัด ที่ระบบกำหนด

      คุณสามารถสร้างบางสิ่งเช่น "กลุ่ม" (บทบาท) ที่มีสิทธิ์ที่แตกต่างกันและเชื่อมโยงผู้ใช้แต่ละคนกับหนึ่งในนั้น

      โดยเฉพาะอย่างยิ่งในใบเรือพวกเขาเรียกว่า "นโยบาย" และคุณสามารถดูได้ที่นี่: http://sailsjs.org/#/documentation/concepts/Policies

      สวัสดีและขอบคุณสำหรับความคิดเห็นของคุณ!

      1.    ผู้หญิงฟองน้ำ dijo

        ขอบคุณบรูโนมาก ด้วยการแจ้งของคุณฉันพบวิธีแก้ปัญหาที่สวยงาม คำทักทาย