קודקודייל
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
קודקודייל
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
ראשי ♦ Javascript ♦ מדריך nodeJS Express – חלק 5 – server

מדריך nodeJS Express – חלק 5 – server

עידן יצחקי 12 במרץ 2022 אין תגובות

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

נתחיל בלראות את הקובץ app.js ואחרי זה נדבר קצת על מה הדברים בו אומרים ועושים.

const path = require("path");
const express = require("express");
const mongoose = require('mongoose');

const loginRoutes = require("./routes/login");

const app = express();

mongoose.connect("mongodb://localhost:27017/mydb", { useNewUrlParser: true, useUnifiedTopology: true })
    .then(() => {
        console.log('connected');
    }).catch(() => {
        console.log('not connected');
    });

app.use(express.urlencoded({ extended: true }));
app.use(express.json());
app.use("/images", express.static(path.join("server/images")));

app.use((req, res, next) => {
    res.setHeader(
        "Access-Control-Allow-Origin",
        "*"
    );
    res.setHeader(
        "Access-Control-Allow-Headers",
        "Origin, X-Requested-With, Content-Type, Accept, Authorization"
    )
    res.setHeader(
        "Access-Control-Allow-Methods",
        "GET, POST, PATCH, PUT, DELETE, OPTIONS"
    )
    next();
});

app.use("/api/login", loginRoutes);
module.exports = app;

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

נעבור בקצרה על הקוד ונראה מה החלקים החשובים שצריך להכיר.

שורה 1:

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

שורה 2:

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

שורה 3:

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

שורה 5:

בשורה זו אנחנו מושכים את הראוט שיצרנו אל השרת שלנו כדי שבהמשך נוכל להשתמש בו.

במידה שיצרנו עוד קבצים עם ראוטים שונים, נייצר בדף למעלה עוד משתנה עבור כל ראוט.

שורה 9 – 14:

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

אם יש צורך בשם משתמש וסיסמה, זה המקום לשרשר אותם בשביל החיבור.

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

שורה 16:

express.urlencoded – מבצע חילוץ של הנתונים שמגיעים בכל בקשה מצד הגולש/ המשתמש כך שבפונקציות שלנו נקבל את המידע במבנה מתאים לעבודה.

שורה 17:

express.json – כמו בשורה 16 גם הוא סוג של מחלץ מידע רק שהפעם למידע במבנה JSON.

שורה 18:

זו השורה שבשבילה קראנו ל-PATH, אנחנו מסמנים את מיקום הספריה שצריך לפנות כאשר מדובר בניתוב images.

שורה 20 – 34:

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

נגיד שבשורה 31 נמחק את GET, כל בקשה שתגיע למשיכת מידע לא תעבור ל-API ותכשל כבר בהגעה לשרת. זו דרך טובה לשמור ולמנוע פעולות מסויימות ממשתמשים.

שורה 36:

שיוך של הראוט ל-URL שצריך להפעיל אותו, כך שהבקשה שמגיעה תנותב לכיוון הנכון.

שורה 37:

הוספה של כל מה שכתבנו למעלה לשרת, כל השורות למעלה הם סוג של קונפיגורציה לשרת.

פוסטים קשורים:

מדריך nodeJS Express – חלק 3 – routes מדריך nodeJS Express – חלק 4 – middleware מדריך nodeJS Express – חלק 1 – models מדריך nodeJS Express – חלק 2 – controllers
express javascript nodejs מדריך

אודות המחבר

עידן יצחקי להציג את כל הפוסטים של עידן יצחקי


« פוסט קודם
פוסט הבא »

השארת תגובה

ביטול

חיפוש באתר
בחירת העורכים
29 בדצמבר 2023 עידן יצחקי

שדה טקסט עשיר עם תמונות

אתם הולכים להיות מופתעים עד כמה HTML יכול להיות חכם ולבצע משהו כל כך מורכב, שאם אנחנו היינו רוצים ליצור

1 באוקטובר 2021 עידן יצחקי

איך למשוך דינמית favicon של אתרים אחרים ב-JS

בפוסט זה נראה איך אפשר על פי לינקים בדף למשוך את ה-favicon מהדומיין שלהם באופן דינמי, בדיקה של תקינות התמונה

פופולרי
Javascript functions – היכרות עם סוגי פונקציות
Javascript
21 בדצמבר 2024 אין תגובות
Nested routing in angular standalone component
Typescript
15 בנובמבר 2024 תגובה אחת
בחרו לפי תגיות
angular blockchain css ethers express front-end fullstack GQL html javascript next js nextjs nodejs react hooks reactjs solidity webgl אנגולר בלוקציין וורדפרס לימודי אנגולר לימודי וורדפרס לימוד ריאקט מדריך front-end מדריך GQL מדריך אנגולר מדריך וורדפרס מדריך חינם react מדריך ריאקט מפתח בלוק מפתח בלוקציין מתכנת front-end מתכנת בלוקציין מתכנת פרונט סולידיטי קורס front end קורס fullstack קורס nextjs קורס אנגולר קורס בלוקציין קורס בלוקציין בחינם קורס סולידיטי קורס ריאקט קורס תכנות קורס תכנות בחינם
סינון על פי קטגוריות
CSS fullstack HTML IIS Javascript nodeJs SEO Typescript אנגולר בלוקציין בניית אתרים וורדפרס חיפוש עבודה כלים נוספים כללי נגישות קורסים ריאקט תלת מימד תקלות ופתרונות
צור קשר
כל הזכויות שמורות לקודקודייל
ליצירת קשר: @ קודקודייל
גלילה לראש העמוד