מבוא ל- NodeJS + SailsJS

שלום לכל הקהילה! שמי ברונו והייתי שם DesdeLinux כמשתמש. הגיע הזמן שאפרסם את הפוסטים הראשונים שלי בקהילה הזו 🙂

היום אני מביא לך מדריך NodeJS y sails.js

Node.js

זוהי סביבת תכנות, המבוססת על השפה Javascript עם ארכיטקטורה מוכוונת אירועים, אידיאלית לתכנות אסינכרוני. צומת, מבוסס על המנוע V8 של גוגל.
היא מקיימת קהילת קוד פתוח פעילה, שכתבה מודולים רבים כדי להקל על הפיתוח שלנו.
אחד מהם הוא socket.io (מאפשר לשרת לשלוח עדכונים בזמן אמת ללקוח, למשל מעקב אחר GPS)

בשביל מה?

הצומת מיועד למצבים בהם התנועה גדולה מדי, מה שגורם לוגיקה ותפוקת שרתים לא בהכרח גבוהים יותר. ולא רק זאת, אלא בזמן אמת ועם יכולת הרחבה רבה!

מדוע צומת?

1 הוא קוד פתוח.
2) אם חשבת פעם להשתמש בשפה אחת בצד השרת וגם בצד הלקוח, הנה הפתרון.
3) מדרגיות ו הַסכָּמָה.
4) וכו '

sails.js

בחרתי מפרשים, למאפיינים הבאים בנוסף לעובדה שמבחינתי זה היה הקריא ביותר מבחינת קוד. עַיִן! קיימים רב מסגרות עבור צומת, כפי שהוא אקספרס, זוויתי, גדי, וכו '

צילום מסך - 080913 - 13:21:50

מה זה מפרשים?

האם מסגרת MVC המדמה את המודל של אודם על מסילות (כן, שמעתם נכון: ד) ליצירת יישומים קטנים או גדולים במהירות, בקלות ובבטיחות. נוסף יש תמיכה בדרישות היישום המודרניות. לא משנה באיזה בסיס נתונים אתה משתמש, מפרשים מספקים שכבת הפשטה, מה שהופך את הבחירה בו לאדישה. למפרשים יש:

- היכולת ליצור ממשק API RESTfull של JSON באופן אוטומטי.
- הוא שילב את המודול socket.io.
- צור מסלולים אוֹטוֹמָטִי לבקרים שלך.
- מספק מערכת של אימות של משתמשים ו בקרת גישה מבוסס תפקיד.
- לִנְחוֹר כמו Task Runner (משימות אוטומטיות כגון מיניפיקציה, קומפילציה, בדיקה וכו ')
- נכסים: כל הקבצים בספריות המקבילות שלהם (css, js) הם מאוחד בקובץ יחיד וממוזער, להפחית במידה ניכרת טעינת דף ומספר מוגבל של בקשות דפדפן.

התקנת Node.Js

הטורוריה שעשיתי איתה אובונטו 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

Yeeeeeeeeeeah! אנחנו נכנסים http://localhost:1337/

צילום מסך - 080913 - 13:02:34

מבנה הספרייה שלנו צריך להיראות כך:
צילום מסך - 080913 - 13:07:57

API:
- נהגים
מתאמים
- דוגמניות
- מדיניות
- שירותים

נכסים:
- תמונות
- ג'ס
- סגנונות
favicon
רובוטים

תצורה:
- מקומי
404.js, 500.js ... ..
routes.js
session.js
sockets.js …… ..

NODE_MODULES:
- פליטות (מנוע תבנית)
- לרטון
- אופטימיסט
- מפרש-דיסק

צפיות:
- בית (הנה תבנית השורש, localhost)
- 404.ejs
- 500.ejs
- layout.ejs (עבור מי שהשתמש במסילות, layouts.ejs מתנהג אותו דבר מאשר layouts.html. *)

EJS (Embedded Javascript) זהו מנוע תבנית, אך לא היחיד. אני אוהב את JADE יותר טוב

סנפיר

עד כאן הידע שלי, ואני מקווה שעזרתי לרבים ... אני חדש בטכנולוגיה זו כך שכל ביקורת בונה היא בינובנידה ???

פוסט זה בא להיעשות מכיוון שאני מפתח סוג של רשת פסיכו-סוציאלית (שום דבר מעולם אחר). עם מטרות למידה, ומעט משאבים. הרעיון הוא ליצור גם שרת ביתי שתומך בו (בטח הכינו את זה הדרכהכפי שאמרתי קודם, המשאבים מועטים, כך אופטימיזציה זה מאוד חשוב. (וגם אם הם לא היו יותר מדי ^^)


18 תגובות, השאר את שלך

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   ארתור שלבי דיג'ו

    אני נדהם כמה נאמן הוא מחקה את RoR, אם כי רבים שונאים את RoR על הביצועים הגרועים שלה (מבלי להגדיר) ניקוי קוד המגמה.

    הנושא מעניין מאוד, אני מקווה שתמשיכו לפתח אותו, מזל טוב.

    1.    ננו דיג'ו

      אני לא שונא את RoR, האמת היא שהפילוסופיה של רובי "ישנן דרכים רבות לעשות את אותו הדבר" היא בדרך כלל בעיה מכיוון שלא כולם באמת היעילים ביותר וכשאתה רוצה לענות על שאלה, אצל רבים במקרים שיש לך את הבעיה הקטנה שבה כולם מגיבים בדרך אחרת לעשות את אותו הדבר ואתה נוטה להתבלבל יותר D:

      לגבי מסגרת זו עבור Node, מכיוון שהיא אינה עבור דברים ענקיים או גדולים, משתמשים בצומת יחד עם מסגרות אחרות כמו Django לדברים ספציפיים, אני חושב שהדוגמה של Mejorando.la היא כזו, הם בונים את כל האתר ומנהלים את זה בסיסי נתונים עם ג'נגו אך הבעיות בזמן אמת נותרות לצומת, אם כי אני לא בטוח ולכן אני לא יכול לדבר יותר מדי על זה.

      1.    ג'אמין-סמואל דיג'ו

        אני חושב שככה אתה אומר, הם משתמשים בג'נגו לבסיס האתר ובצומת דברים בזמן אמת ... טוב לפחות זה מה שאני תמיד שומע פרדי וגה אומר

        1.    ברונו קסיו דיג'ו

          NodeJS אינו דומה לג'אנגו או ל- PHP, או לאודם. אבל זה שרת כגון Apache, Nginx וכו '.

          מפרשים היא המסגרת שעושה שימוש ב- nodejs וב- express (מסגרת אחרת) יחד עם כמה מודולים כמו socket.io, ליצירת יישומי אינטרנט.

          ברכות!

          1.    ארנולדו RLF דיג'ו

            אז אם ברצונך לכלול צ'אט שנוצר עם nodejs עם דף בפיתון עם ג'נגו (כדי להמשיך בדוגמה של שיפור.לה), יהיה עליך להשתמש במסגרת, או להקצות לאפאצ'י (אם זה המקרה, אני אין לי מושג איזה שרת משתמש בפיתון) בנתיב http://miweb.com יא node.js http://miweb.com/chat ולתקשר איתם

  2.   ג'אמין-סמואל דיג'ו

    היי זה סופר מעניין ....

    מה שלא סיימתי הוא מדוע משתמשים ב- Node JS לאינטרנט?

    1.    ארנולדו RLF דיג'ו

      זוהי אלטרנטיבה לאפאצ'י, עם היתרון של להיות בזמן אמת (יישומים שמתקשרים כל הזמן ולא רק כשהבקשה נעשית).

      1.    דייויד גומז דיג'ו

        NodeJS אינו חלופה (או החלפה) ל- Apache, NGINX או כל שרת אינטרנט אחר. NodeJS הוא מתורגמן JavaScript עבור השרת, המאפשר לך ליצור יישומים עם שפה זו שאם לא כן נדרשת שימוש בשפות כגון Java, Python, Ruby או PHP.

        1.    ברונו קסיו דיג'ו

          כן, אולי התבטאתי בטעות. מה שרציתי להעביר הוא ש- node.js מפעיל שרת משלו ואינו זקוק לגורמים שלישיים כדי לעבוד (אפאצ'י, nginx, צ'רוקי וכו ')

          ברכות!

  3.   ארנולדו RLF דיג'ו

    טוב מאוד, אני מקווה שיעורים נוספים שיעשו לעקוב אחר node.js ולעשות משהו בזמן אמת

    1.    ברונו קסיו דיג'ו

      כאן אני משאיר לך ספר בן 200 עמודים, עם מבוא ל- Node.js דרך Koans. יש לו כניסה ל- Node.js, וה"פתרון "של חלק מבעיה (הדוגמה היא טוויטר) עם Express כמסגרת הכותרת ... ..

      http://nodejskoans.com/

      נ.ב: מפרשים מיוצרים על בסיס אקספרס, בדרך כלל רובם.

      ברכות!

  4.   אלב דיג'ו

    תרומה מעולה ברונו .. ברוך הבא 😀

    1.    ברונו קסיו דיג'ו

      תודה לך ולכל הקהילה שנתנו לנו להיות חלק ממנה 🙂 ברכות!

  5.   auroszx דיג'ו

    מעניין מאוד ברונו 🙂

    1.    ברונו קסיו דיג'ו

      תודה!

  6.   אשת הספוג דיג'ו

    מאמר מצוין. תודה רבה.

    כרגע אני משתמש במפרשים בחלק מהפרויקטים שלי. ברצוני לשאול אותך היכן אוכל לקבל מידע נוסף אודות בקרת גישה מבוססת תפקידים למפרשים, אם אפשר בספרדית, אך אם לא, באנגלית. ברצוני להוסיף בקרת גישה לאחד מהדפים שלי אך ברצוני לקבוע הרשאות עבור משתמשים מסוימים ממסלול מסוים ואחרים ממסלול אחר. האם זה אפשרי עם מפרשים? אני לא מוצא הרבה מידע על זה.

    תודה וברכה על המאמר.

    ברכות
    אלווירה.

    1.    ברונו קסיו דיג'ו

      שלום אלווירה!

      לגבי מה שאתה מציין, בין אם זה Sailsjs או כל מסגרת אחרת, מה שאתה מציע קשור לדוגמנות הנתונים ולהגבלות שהמערכת מטילה.

      אתה יכול ליצור משהו כמו "קבוצות" (תפקידים) עם הרשאות שונות ולשייך כל משתמש לאחד מהם.

      במיוחד במפרשים הם מכונים "מדיניות" ותוכלו לראות זאת כאן: http://sailsjs.org/#/documentation/concepts/Policies

      ברכות ותודה על תגובתך!

      1.    אשת הספוג דיג'ו

        תודה רבה לך ברונו. עם ההנחיות שלך מצאתי פיתרון אלגנטי. ברכת שלום