אינטרנט ישראל
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
ראשי » מדריכים » Node.js » מדריך Node.js: מעבר לסביבת פרודקשן

מדריך Node.js: מעבר לסביבת פרודקשן

רן בר-זיק דצמבר 16, 2014 7:14 am אין תגובות

כך טוענים אפליקצית Node.js לסביבת Production על Heroku.

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

אוהבים את מדריך Node.js? רוצים לדעת עוד?

ספר מקיף על Node.js, בעברית, שנכתב על ידי רן בר-זיק וכולל תרגילים רבים ומידע מקיף - גם על מודולים אסינכרוניים וגם על CLI וסטרימים ומידע רב יותר על Node.js ניתן להורדה ממש פה.
כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

במאמר הקודם ראינו איך אני משתמש במודולים חיצוניים כדי ליצור אפליקציה. במקרה הזה אפליקציה שמשתמשת ב-Web Socket כדי להדפיס את השעה. אחרי שטרחנו וכתבנו, נשאלת השאלה – איך לפרסם?

כמעט כל שירות משמעותי היום תומך ב-Node.js. מ-Azure של מיקרוסופט ועד שרתי הענן של מיקרוסופט. ישנם גם שירותי shared (לא הרבה) שמאפשרים אחסון אפליקציות Node.js. אחד משירותי הענן היותר פופולריים הוא הרוקו (Heroku) שמאפשר גם אחסון אפליקציות עם נתוני תעבורה נמוכים בחינם.

אחד הדברים הטובים בהרוקו הוא הידידותיות הרבה. יש לו ממש מדריך שמסביר איך ליצור אפליקצית Node.js. כל מה שצריך זה ליצור חשבון (זה בחינם) ואז להכנס אל הדף הזה.

באופן עקרוני, אנחנו צריכים להתקין את Heroku toolbelt. אפשר להתקין אותו מכל סביבה שהיא: חלונות, לינוקס או מק. אחרי ההתקנה, כל הפקודות שלו ניתנות להרצה מהקונסולה או מה-cmd אם אתם בחלונות. אחרי שהתקנו, כל מה שצריך לעשות זה heroku login. ממש לפי ההוראות:


$ heroku login
Enter your Heroku credentials.
Email: [email protected]
Password (typing will be hidden): 
Your Heroku account does not have a public ssh key uploaded.
Could not find an existing public key at ~/.ssh/id_rsa.pub
Would you like to generate one? [Yn] Y
Generating new SSH public key.
Uploading SSH public key /home/ran/.ssh/id_rsa.pub... done
Authentication successful.
$ heroku keys
=== [email protected] Keys
ssh-rsa AAAAB3NzaC...8fzCB2t0S9 [email protected]

עכשיו הכל מוכן. באופן עקרוני heroku עובדת עם git כאשר אנו דוחפים את הקוד שלנו ל heroku master כאשר אנו רוצים לעדכן את הגרסה.
הדבר הראשון שאנח עושים זה ללכת לתיקיה שיש בה את המוצר שלנו. לצורך העניין זו התיקיה example-nodejs-clock-heb. אפשר להוריד אותה מ-GitHub. מיד אחרי שנכנסנו אליה, אנו נכתוב
heroku create

ואז נוסיף את כל הקבצים _אם צריך) ל-git באמצעות git add ו-git commit. מי שלא יודע מה זה git, מומלץ לו להשקיע מספר דקות בלמידה של זה.

לפני שאנחנו עושים push, יש כמה דברים שצריך לעשות. ראשית אנו צריכים ליצור package.json. מדובר בקובץ שמכיל מידע על האפליקציה שלנו. איך יוצרים? עם npm init. פשוט מקלידים בתיקיה של האפליקציה ועוקבים אחר ההוראות:


$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sane defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install  --save` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
name: (example-nodejs-clock-heb) 
version: (0.0.0) 1.0.0
description: This is an example application for socket.io.
entry point: (app.js) 
test command: nodejs app.js
git repository: (https://github.com/barzik/example-nodejs-clock-heb.git) 
keywords: clock example socket.io
author: Ran Bar-Zik
license: (BSD-2-Clause) 
About to write to /var/www/html/example-nodejs-clock-heb/package.json:

{
  "name": "example-nodejs-clock-heb",
  "version": "1.0.0",
  "description": "This is an example application for socket.io.",
  "main": "app.js",
  "scripts": {
    "test": "nodejs app.js"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/barzik/example-nodejs-clock-heb.git"
  },
  "keywords": [
    "clock",
    "example",
    "socket.io"
  ],
  "author": "Ran Bar-Zik",
  "license": "BSD-2-Clause",
  "bugs": {
    "url": "https://github.com/barzik/example-nodejs-clock-heb/issues"
  }
}


Is this ok? (yes) yes

מאוד מאוד חשוב להוסיף לקובץ הזה את המודולים שאנו צריכים. dependencies הם נקראים בשפת Node.js. אם אני צריך את socket.io, זה מה שאני אוסיף.


  "dependencies": {
      "socket.io": "*"
  },

הדבר הבא שאני אוסיף הוא קובץ שכולל את השורה שאותה אני צריך לכתוב בשורת הקונסולה על מנת להפעיל את האפליקציה. עד עכשיו כתבנו לתוך קובץ js ועל מנת להפעיל אותו כתבנו nodejs app.js, אם app.js היה שם הקובץ שלנו. עכשיו אנחנו צריכים "לומר" ל-heroku איך להפעיל את האפליקציה שלנו. הקובץ הזה נקרא Procfile והוא כולל את השורה הבאה:


web: node app.js

בגדול? זהו. אפשר לעשות את ה-push heroku master, אבל לפעמים יש גם שינויים בקוד האפליקציה עצמה שצריך לבצע:

כאשר אנו מפעילים את השרת בסביבת הענן, אנחנו לא יכולים לקבוע את הפורט או להניח שמדובר יהיה בפורט 80 או פורט 3000, יש לנו את ה-process.env שמכיל כמה משתנים חשובים. החשוב שבהם הוא ה-PORT. איך זה עובד? ככה:


var port = process.env.PORT || 3000;

app.listen(port); 

לעומת:


app.listen(3000); 

לא כזה נורא, נכון? עושים push. אחרי שעושים push צריך לעשות את ה-scaling. כיוון שזה חשבון חינם אנו נסתפק בשורה הבאה


heroku ps:scale web=1

אם הכל תקין, נכתוב heroku open על מנת שדפדפן ברירת המחדל יפתח על האפליקציה. אם משהו משתבש (והוא משתבש במצבים של not hello world application) אז לא צריך להכנס ללחץ. כדי לראות את הלוגים בזמן אמת צריך להקליד:


heroku logs --tail

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

בגדול כל הצעדים האלו ואחרים מפורטים במדריך המאוד יפה של heroku. גם אם אתם לא בוחרים להשתמש ב-heroku אלא בשירותים אחרים – גם להם יש הסברים לא פחות מפורטים. אני בחרתי ב-heroku כי הוא חינמי לאפליקציות פשוטות ופופולרי מאוד.

אפשר להתקין Node.js בכל מקום. אפילו ברספברי פיי!

במדריך הבא אנו נלמד ליצור מודול.

⚠️ תזכורת – המדריכים האלו הם רק טעימה, בספר שלי "ללמוד Node.js בעברית" יש הסברים מלאים ומקיפים על השפה המיועדים ללימוד עצמי. עם תרגילים והסברים. הספר יצא לאור בשיתוף הקריה האקדמית אונו ובתמיכת החברות אלמנטור, ו-Iron source ונערך טכנית על ידי בנג'י גרינבאום (מפתח ליבה של Node.js), גיל פינק ומתכנתים מעולים נוספים. 

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.
כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

אוהבים את מדריך Node.js? רוצים לדעת עוד?

ספר מקיף על Node.js, בעברית, שנכתב על ידי רן בר-זיק וכולל תרגילים רבים ומידע מקיף - גם על מודולים אסינכרוניים וגם על CLI וסטרימים ומידע רב יותר על Node.js ניתן להורדה ממש פה.
למאמר הקודם בסדרת המדריכים על Node.jsמדריך Node.js: שימוש ב-socket.io
למאמר הבא בסדרת המדריכים על Node.jsמדריך Node.js: דיבוג עם IDE
לכל המאמרים במדריך
node.js

השארת תגובה

ביטול

ללמוד ג'אווהסקריפט בעברית

ללמוד לתכנת ג'אווהסקריפט בעברית שגייס יותר משלוש מאות אלף שקל ולמעלה מ-2000 תומכים - בואו ללמוד עכשיו איך לתכנת.

רשימת הנושאים
  • מדריכים
    • ריאקט
    • טייפסקריפט
    • ECMAScript 6
    • ES20XX
    • Node.js
    • Express
    • רספברי פיי
    • Babel
    • docker
    • MongoDB
    • Git
    • לימוד MySQL
    • SASS
    • jQuery
    • CSS3
    • HTML 5
    • SVN
    • LESS
  • פיתוח אינטרנט
    • פתרונות ומאמרים על פיתוח אינטרנט
    • jQuery Scripts
    • jQuery למתקדמים
    • יסודות בתכנות
    • נגישות אינטרנט
  • חדשות אינטרנט
  • מידע כללי על אינטרנט
    • רשת האינטרנט
    • בניית אתרי אינטרנט
  • rss logo

    לכל המאמרים

    לכל המאמרים שפורסמו באינטרנט ישראל משנת 2008 ועד עכשיו.
  • rss logo

    RSS Feed

    משתמשים בקורא RSS? אם כן, עקבו אחרי אינטרנט ישראל באמצעות פיד ה-RSS!
    מה זה RSS?
  • Twitter logo

    עקבו אחרי בטוויטר

    בחשבון הטוויטר שלי אני מפרסם עדכונים מהירים על חדשות בתחום התכנות והיזמות, התרעות על מצבי חירום ורכילות בוערת על תחום הווב.
    מה זה טוויטר?
  • facebook like image

    ערוץ הטלגרם של אינטרנט ישראל

    בערוץ הטלגרם של אינטרנט ישראל אני מפרסם את הפוסטים של באתר וכן עדכונים טכנולוגיים נוספים.
    מה זה טלגרם?
  • github logo

    הפרויקטים שלי בגיטהאב

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

כל הזכויות שמורות לרן בר-זיק ולאינטרנט ישראל | מדיניות הפרטיות של אתר אינטרנט ישראל | אתר אינטרנט ישראל נגיש לפי תקן WCAG 2.0 AA | הצהרת הנגישות של האתר | אבטחת מידע ודיווח על בעיית אבטחת מידע

גלילה לראש העמוד