express.js – מבוא

המאמר הבא בסדרת המדריכים ל-express

Express.js או רק Express היא פריימוורק לשפת node.js שמהווה תשתית לשרת אינטרנט לכל אפליקציה. בפועל, Express הפכה להיות הסטנדרט בכל מה שקשור לאפליקציות מבוססות node.js בכלל, ה-E של ה-Express היא חלק מה MEAN stack (שזה ראשי תבות של MongoDB, Express.js, Angular, node.js) שהולכת ומתפתחת בצעדי ענק.

עד כאן להגדרה הסמי ויקיפדית של Express. נשאלת השאלה מה זה בדיוק ולמה צריך את זה. כפי שאנו יודעים, אם אני רוצה לפתח אתר/אפליקציה ב-node.js, אני צריך לממש את השרת שלי. בניגוד ל-PHP למשל, שם יש לי את Apache או את NginX שהם שרתי אינטרנט שמעבדים ומגישים לי את הקבצים, ב-node.js אין לי דבר כזה. מה עושים? אפשר לממש את שרת האינטרנט לבד. אבל במקום זה אפשר להשתמש במודול של node.js ליצירת השרת. ה-מודול, בה”א הידיעה לשרתים הוא Express.js והוא כל כך פופולרי שהוא עתיד להכנס לליבה של node.js. כמעט כל האפליקציות משתמשות בו.

על מנת להשתמש ב-Express ולתפעל אותו, צריך לדעת node.js, כאן לא יעזרו קיצורי דרך. למרבה המזל, הכנתי מדריך מפורט בשביל כל אלו שלא מכירים את node.js, שווה לעבור עליו לפני. כדאי גם לעבור על המדריך הקצרצר של REST API.

המדריך מותאם גם לחלונות וגם ללינוקס/מק. בגדול, אני ממליץ מאוד להשתמש ב-git bash. כשאני מדבר על הקלדה בקונסולה, אני מתכוון להקלדה בקונסולה של לינוקס/מק או להקלדה ב-cmd\git bash.

הדבר הראשון שצריך לעשות הוא לדאוג שיש לכם node על המחשב. ההתקנה קלה גם בחלונות וגם בלינוקס/מק ועברנו עליה במדריך של node.js מהנקודה הזו והלאה אני יוצא מנקודת הנחה שאתם יודעים node.js.

על מנת להתחיל את האפליקציה שלנו, אנחנו נפתח תיקיה כלשהי, נכנס עם הקונסולה ונכתוב שם:


 npm install express --save

זה מתקין כמובן את המודול express ואת כל המודולים שבו הוא תלוי. אם הכל תקין, אתם מחוברים לאינטרנט וכמובן מותקן אצלכם node (אם לא, תקבלו שגיאה שמערכת ההפעלה לא מזהה את node). הכל יותקן. עכשיו ניצור קובץ ששמו הוא index.js ושם נכתוב את הקוד הבא:



var express = require('express');
var app = express();

app.listen(3000, function () {
  console.log('Example app listening on port 3000!');
});

app.get('/', function (req, res) {
  res.send('Hello World!');
});



מה יש בקוד הזה? קודם כל יש require ל-express ואנו מגדירים את app כ-instance של express. אחר כך אנחנו מפרטים לו לאיזה פורט להאזין, במקרה הזה ל-3000. זה קוד שהוא קריטי לכל אפליקצית express וחייב להיות בו. לא יהיה listen, לא יהיה שרת.

הקוד הבא הוא יותר מעניין – הוא בעצם אומר שכל בקשת GET תעבור דרכו. הוא מקבל את הנתיב (במקרה הזה הנתיב הכללי /) ו-callback שמכיל שני ארגומנטים req שהוא הבקשה (ושם יש לי גישה לכל פרטי הבקשה) ו-res שהוא התגובה שלי. אני יכול לשלוט שם על כל פרטי התגובה.

במקרה הזה, אני אשתמש ב-send על מנת לשלוח טקסט בלבד.

אחרי ששמרתי את הקובץ, עכשיו כל מה שנותר לי לעשות זה להפעיל את השרת – במקרה הזה להקליד את הקוד הזה בקונסולה:


node app.js

אם נפתח את הדפדפן ונכניס את הכתובת localhost:3000 או את ה-IP של המחשב שלנו עם פורט 3000, נראה Hello World! יש!

בואו ונמשיך את זה, נוסיף נתיב נוסף ששמו בישראל יהיה moshe. איך עושים את זה? על ידי הוספת הקוד הבא:



var express = require('express');
var app = express();

app.listen(3000, function () {
  console.log('Example app listening on port 3000!');
});

app.get('/', function (req, res) {
  res.send('Hello World!');
});

app.get('/moshe', function (req, res) {
  res.send('Hello moshe!');
});


נהרוג את התהליך שפתוח בקונסולה באמצעות ctrl +c ואז נפעיל אותו שוב על ידי node app.js, על מנת שה-app.js יעבוד. אם נכניס את הכתובת localhost:3000/moshe אנו נראה שיהיה כתוב לנו על הדפדפן Hello Moshe

hello world express

נחמד, נכון? זו התחלה ראשונית בלבד למה שנקרא routing ונרחיב על כך עוד במאמר הבא בסדרה – routing ב-express

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

אהבתם? לא אהבתם? דרגו!

לא אהבתי בכלללא אהבתיבסדראהבתיאהבתי מאוד (14 הצבעות, ממוצע: 4.43 מתוך 5)

תגיות: פורסם בקטגוריה: Express

אל תשארו מאחור! יש עוד מה ללמוד!

3 comments on “express.js – מבוא
  1. משתמש אנונימי (לא מזוהה) הגיב:

    תודה על המאמר המושקע!
    זמן רב חכיתי למאמרי המשך הקשורים ל-nodejs.

    • רן בר-זיק הגיב:

      תודה רבה! אני מתכוון להמשיך עם זה לפחות עד בדיקות אוטומטיות, יצירת code coverage וגם עבודה עם ג’נרייטור כמו yeoman 🙂

  2. שמעון הגיב:

    תודה רבה, רן.
    תיקון לקובץ קראת index.js אם כן צריך להפעיל node index.js ולא app.js

    (משום מה על פורט 3000 אצלי לא עבד. עברתי לפורט 8080)