PracticU

בניית אתר אינטרנט ב-NodeJS

בלי כתוביותעם כתוביות
PracticU › קורס NodeJS › בניית אתר אינטרנט ב-NodeJS
מילון מושגים:
אתר אינטרנט - אוסף של דפים ומשאבים מקושרים המתארחים תחת כתובת אחת ומוגשים דרך דפדפן.
Node.js - סביבת ריצה שמאפשרת להריץ קוד JavaScript מחוץ לדפדפן, בעיקר בצד השרת.
REST - סגנון לבניית ממשקי API מעל HTTP, המבוסס על משאבים ועל שיטות סטנדרטיות כמו GET ו-POST.
npm - מנהל החבילות של Node.js, המשמש להתקנה ולניהול ספריות JavaScript בפרויקט.
ראוט - הגדרה שמקשרת כתובת בקשה לקוד שמטפל בה באפליקציה. גם מסלול שדרכו עוברות חבילות ברשת.
GET - שיטת HTTP לבקשת מידע מהשרת בלי לשנות אותו. הפרמטרים מועברים בדרך כלל בכתובת.
CSS - שפת עיצוב שקובעת את המראה של דפי אינטרנט: צבעים, גופנים, מיקום וסידור הרכיבים.
גופן - העיצוב הגרפי של האותיות והתווים המוצגים בטקסט, הכולל צורה, סגנון וגודל.

בניית אתר אינטרנט ב-NodeJS
Node.js יכול לשמש כ-RESTful service וגם כצד השרת של אתר אינטרנט רגיל. ההרצאה מראה איך מגישים למשתמש דפי HTML בעזרת Express, כולל ניתוב, דף שגיאה, עיצוב ותפריט.
בניית האתר
1. הכנת השרת: מתקינים את Express עם npm i express, מייבאים אותו עם require, יוצרים server ומאזינים על port 3000.
2. תיקיית דפים: יוצרים תיקייה בשם pages שבה כל הדפים, ובתוכה index.html שנוצר ב-Visual Studio על ידי סימן קריאה ו-Enter. הדף הוא דף הבית, עם כותרת h1 פשוטה.
3. הגשה סטטית: server.use(express.static(...)) עם הנתיב __dirname משורשר ל-pages. כך index.html מוגש אוטומטית בכתובת הראשית, וגם בכתובת /index.html, אבל אין דף about עדיין.
4. ניתוב נקי: משתמשים לא צריכים להכיר את הסיומת .html, ולכן מוסיפים ראוט server.get('/home', ...). בתוכו response.sendFile עם __dirname, התיקייה pages והקובץ. אותו דבר נעשה ל-/about עם about.html.
5. דף שלא נמצא: יוצרים pageNotFound.html עם הודעה שהדף לא קיים. מוסיפים server.use('*', ...) שתופס כל כתובת אחרת, בלי קשר לשיטת הגישה, ומגיש אותו.
6. עיצוב: יוצרים styles.css בתיקיית pages עם רקע, גודל גופן ויישור למרכז, ומקשרים אותו בכל דף עם link rel="stylesheet".
7. תפריט: בדף ה-index מוסיפים קישורי a ל-/home ול-/about, מופרדים ב-span עם קו הפרדה, ואותו תפריט מועתק לשאר הדפים כולל דף השגיאה. לא צריך להריץ מחדש כי השתנה רק ה-HTML.
פקודות והגדרות
- npm i express
- express.static מול server.get עם sendFile
- href="/home" מתחיל בלוכסן כדי להתייחס לתיקייה הראשית ולא לנתיב יחסי למיקום הנוכחי, שיכול להיות בתת-תיקייה.
עכשיו אפשר להנגיש בעזרת Node.js דפי HTML עם ראוטים, דף שגיאה, עיצוב ותפריט ניווט.
השיעור הבא בקורס: הצגת תמונות באתר אינטרנט ב-NodeJS

פרקי ההרצאה: בניית אתר אינטרנט ב-NodeJS

  1. 00:00

    הנגשת קבצי HTML מ-Node.js

  2. 00:49

    הרמת שרת Express על פורט 3000

  3. 01:32

    תיקיית pages ודף index

  4. 02:33

    הנגשת דף הבית עם express.static

  5. 03:30

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

  6. 04:23

    ראוטינג לדפים בלי סיומת html

  7. 05:53

    החזרת קובץ עם sendFile

  8. 06:29

    בדיקה והוספת דף About

תמלול ההרצאה: בניית אתר אינטרנט ב-NodeJS

הטקסט המלא של הדקות הראשונות בהרצאה «בניית אתר אינטרנט ב-NodeJS» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:04

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

  2. 00:21

    יכול להיות שבאמת אנחנו לא רוצים לבנות רק RESTful Service, אלא אנחנו רוצים לבנות גם אתר אינטרנט. Node.js בהחלט יכולה להיות צד השרת באתר אינטרנט רגיל.

  3. 00:33

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

  4. 00:55

    const xpress שווה ואנחנו רוצים require xpress. נגדיר server const server ונעלה אותו להעביר. פרוור ליסן על פורט 3000. פאר און סול לוג ליסנינג און http לוקל הוסט 3000. ובואו נתחיל לבנות קבצי html הדבר הראשון שהייתי עושה זה בונה תיקייה בואו נקרא לה נניח פייג'ס כאן יהיו

  5. 01:50

    כל הדפים שלנו כמובן שאפשר גם בתוכה לחלק אותה לתתי תיקיות אם אנחנו רוצים לפי נושאים של דפים שונים בתוך פייג'ס בואו נבנה לנו אינדקס html ואם אנחנו רושמים בוויז'ל סטודיו סימן קריאה enter אז הוא יוצר לנו אוטומטית את כל המבנה של ה html שלנו בואו נניח שה html הזה זה דף הבית אז האינדקס שלנו הוא דף הבית אז בואו נקרא לו

  6. 02:23

    home ואנחנו רוצים שיהיה לנו פה h1 הום פייג' רק בשביל שנראה איזה משהו על הדף. אוקיי, הדבר הבא שאנחנו רוצים לבצע זה להנגיש את הדף הזה.

  7. 02:41

    אז ספציפית הדף אינדקס html זה דף שמקובל שהוא יהיה הדף הראשון שעולה. אז כנראה שזה יהיה הדף הבית ובגלל זה כתבנו בו כרגע את דף הבית, אבל בשביל הדף הזה קיימת פקודה ספציפית שהאמת ראינו אותה בעבר, ונקודה use express נקודה static static זאת פונקציה שאומרת לנו תשמעו אני מחפשת ספציפית את אינדקס html איפה אתם רוצים שאני אחפש

  8. 03:11

    אותו אז אנחנו רוצים לגשת לתיקייה הנוכחית שלנו שראינו ממש בעבר שזה underline underline dear name ואנחנו יודעים שהקובץ נמצא בתוך תיקיית pages בצורה כזאת אפשר לכתוב pages בצורה כזאת אפשר לרשום pages בצורה כזאת אני אשאיר את זה ככה אוקיי אז הנה יש לנו כרגע את ההנגשה של דף ה-HTML.

  9. 03:43

    בואו נריץ את זה, node.app, go, ואנחנו רואים שהוא מאזין על הכתובת הזאת, אז אני לוחץ קונטרול, מקליק עליה, ומה שמיוחד בפקודה הזאת זה שאם אני גולש לדף הבית, אז, כלומר לכתובת הראשית התכוונתי, אז הוא מריץ את הפקודה הזאת ומחפש את הדף

  10. 04:06

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

  11. 04:21

    בואו נראה מה קורה אם אני גולש ל-slash index html גם כן הוא מוצא אותו. אז בואו נישאר בצורה כזאת והנה יש לנו את ההנגשה הראשונה אבל זה ספציפית דף index html.

  12. 04:37

    עכשיו מה קורה אם אני רוצה שכשהיוזר יגלוש ל-slash home כלומר לסוג של ראוט כזה. ואז אני אנגיש לו את דף הבית. כאן אנחנו צריכים לשלב מנגנון של ראוטינג שמנגיש לנו את הדפים, כי בעצם אני לא רוצה שהיוזר יגלוש לאינדקס html, אני לא רוצה שהיוזר יגלוש ל-about html, זאת אומרת הוא יכול, אבל אין היום שום טעם לעשות את זה,

  13. 05:12

    יוזרים לא אמורים לדעת מה זה סיומת html. אז איך אנחנו יכולים לבצע את זה? אנחנו משתמשים עם מנגנון הראוטינג של אקספרס. server.get/home זאת אומרת אם היוזר גולש לכתובת כזאת /home אז אנחנו רוצים להפעיל את הפונקציה הבאה.

  14. 05:41

    אז בואו ניגש ונכתוב request response והנה יש לנו ממש ראוט סטנדרטי. מה אנחנו רוצים לעשות אנחנו רוצים להשתמש ברספונס אבל to send back file הפונקציה send file היא יכולה לאתר את אותו הקובץ הספציפי שאנחנו מחפשים ולהחזיר אותו ליוזר.

  15. 06:12

    אז אנחנו רוצים שוב פעם את dear name כי כאן נמצא לנו הקובץ משורשר עם תיקיית משורשר עם אינדקס HTML. בואו נבדוק מה קורה עכשיו.

  16. 06:29

    נעצור, נריץ, נחזור בחזרה. אם אנחנו גולשים לכתובת הראשית אנחנו מקבלים את דף הבית, ואם אנחנו גולשים ל-Route Home אנחנו מקבלים את דף הבית.

  17. 06:41

    בואו נעשה משהו דומה עבור About. עשיתי copy-paste של הקובץ, יש לנו פה את About, יש לנו פה את About Page. בואו נחזור, נטפל את כל זה ל-about ונגיד לו about html.

לקורס המלא: קורס NodeJS אונליין בעברית

ההרצאה הקודמת: הוספת ולידטור ב-Mongoose

ההרצאה הבאה: הצגת תמונות באתר אינטרנט ב-NodeJS

הרצאות קשורות מקורסים אחרים

  • בניית אתר אינטרנט אמיתי לחנות חיות - Layout
  • הצגת אתר אינטרנט באפליקציה
  • בדיקת אתר אינטרנט - בתוך הקונטיינר
  • אירוח אתר אינטרנט בבית - FreeDNS

קורסים נוספים במסלול

  • קורס יסודות HTML - בניית אתר אינטרנט פשוט
  • קורס CSS 3 - בדגש על Flex & Grid
  • קורס Javascript כולל JQuery
  • קורס ג'אווה סקריפט מעשי - JavaScript
  • קורס TypeScript
  • קורס ריאקט - React