ממשק API של CRUD מנהל נתונים באמצעות ארבע פעולות בסיסיות של מסד נתונים: יצירה, קריאה, עדכון ומחיקה. אתה יכול ליצור ממשק API פשוט של CRUD עם Express ומסד נתונים PostgreSQL בלבד.
התחל ביצירת שרת אקספרס שאליו תחבר את PostgreSQL. לאחר מכן, צור את פונקציות ה-CRUD וחבר אותן לנקודות קצה של API. לאחר שתעשה זאת, תוכל לחבר את Node ל-PostgreSQL ולבצע שאילתות מסד נתונים בכל נתיב.
תנאים מוקדמים לבניית ה-API
כדי לעקוב אחר הדרכה זו, עליך:
- התקן את Node במחשב שלך.
- התקן את שרת PostgreSQL במחשב שלך.
- יש ידע בסיסי ב Express.js.
צור שרת אקספרס
ל ליצור שרת אקספרס, התחל ביצירת ספרייה חדשה והזנתה:
הערות mkdir
CD הערות
לאחר מכן אתחול npm:
npm init -y
פקודה זו תיצור א package.json קובץ בתיקיית ההערות. לבסוף, התקן את Express.
npm להתקין אֶקְסְפּרֶס
צור קובץ חדש בשם index.js והוסיפו את הקוד הבא.
const express = לִדרוֹשׁ("אֶקְסְפּרֶס");
const app = express();אפליקציה.להשתמש(אֶקְסְפּרֶס.urlencoded({
מורחב: נָכוֹן
}));
אפליקציה.להשתמש(אֶקְסְפּרֶס.json())
app.listen (3000, () => console.log("האזנה בפורט 3000"));
פעולה זו תיצור שרת חדש שמאזין ביציאה 3000.
צור מסד נתונים PostgreSQL
בצע את הפקודה הבאה בשורת הפקודה psql כדי ליצור מסד נתונים PostgreSQL בשם notedb.
postgres=# צור מסד נתונים ציין ב;
הפעל את הפקודה הזו ל רשום את כל מסדי הנתונים של Postgres ובדוק שיצרת את מסד הנתונים notedb:
postgres=# \l
התחבר למסד הנתונים
קודם כל, חבר את אפליקציית ה-Node שלך לשרת PostgreSQL. אתה יכול להשתמש במודול node-Postgres.
הפעל את הדברים הבאים כדי להתקין אותו באמצעות npm:
npm להתקין עמ'
כתרגול טוב, התחבר למסד הנתונים בקובץ נפרד.
צור קובץ חדש בשם db.js ולהוסיף את הדברים הבאים.
const { לקוח } = לִדרוֹשׁ("עמוד");
const { user, host, database, password, port } = לִדרוֹשׁ(./dbConfig");const לקוח = חָדָשׁ לָקוּחַ({
מִשׁתַמֵשׁ,
מנחה,
מאגר מידע,
סיסמה,
נמל,
});
לָקוּחַ.לְחַבֵּר();
מודול.יצוא = לקוח;
כאן, אתה מייצא את מחרוזת החיבור שבה תשתמש כדי לתקשר למסד הנתונים. שים לב שאתה קורא את הגדרות חיבור מסד הנתונים מקובץ תצורה בשם dbConfig.js. לכן, צור dbConfig.js והוסף אליו את הנתונים הבאים.
מודול.יצוא = {
מִשׁתַמֵשׁ: "{dbUser}",
מנחה: "{dbHost}",
מאגר מידע: "ציין ב",
סיסמה: "{dbPassword}",
נמל: 5432,
};
זכור להחליף את פרטי מסד הנתונים בערכים המקומיים שלך.
צור טבלת PostgreSQL
בשורת הפקודה psql, צור טבלה בשם הערות. כדי להתחיל, התחבר למסד הנתונים notedb באמצעות הפקודה \c.
postgres=# ציין
לאחר מכן, צור טבלה במסד הנתונים המחובר באמצעות הפקודה CREATE TABLE.
notedb=# צור הערות טבלה (
מפתח ראשי סדרתי מזהה,
הערה VARCHAR(255)
);
הטבלה הזו די פשוטה. יש לו רק מזהה שהוא מפתח ראשי שנוצר אוטומטית ושדה טקסט הנקרא הערה.
צור הערה
במקום לבצע את פעולות ה-CRUD במסלולים, צור פונקציות שיתקשרו עם בסיס הנתונים בקובץ נפרד.
צור קובץ עוזר בשם helper.js וייבא את אובייקט החיבור מ-db.js.
const לקוח = לִדרוֹשׁ(./db");
השתמש בקוד הבא כדי ליצור את הפונקציה createNote() .
const createNote = (req, res) => {
לְנַסוֹת {
const { note } = req.body;if (!note) {
לזרוקשְׁגִיאָה("שלח הערה ב גוף הבקשה");
}
לָקוּחַ.שאילתא(
"לְהַכנִיסלְתוֹך הערות (הערה) ערכים ($1)",
[הערה],
(שגיאה, נתונים) => {
מילואים.סטָטוּס(201).json({
שְׁגִיאָה: ריק,
הוֹדָעָה: "נוצר הערה חדשה",
});
}
);
} לתפוס (שגיאה) {
מילואים.סטָטוּס(500).json({
שְׁגִיאָה: שְׁגִיאָה.הוֹדָעָה,
הודעה: "נכשל לִיצוֹרחָדָשׁ הערה",
});
}
};
פונקציה זו בודקת תחילה אם גוף הבקשה כלל הערה. אם ההערה נעדרת, הוא זורק שגיאה.
כדי ליצור הערה, הפונקציה משתמשת בסעיף INSERT. הוא מחזיר אובייקט JSON המכיל הודעת שגיאה null והודעת הצלחה אם היא מצליחה.
קבל את כל ההערות
כדי לקבל את כל ההערות מהטבלה, השתמש בסעיף SELECT *.
const getNotes = (req, res) => {
לְנַסוֹת {
client.query("בחר * מתוך הערות", (שגיאה, נתונים) => {
אם (לִטְעוֹת) לזרוק לִטְעוֹת;
מילואים.סטָטוּס(200).json({
לִטְעוֹת: ריק,
הערות: נתונים.שורות,
});
});
} לתפוס (שגיאה) {
מילואים.סטָטוּס(500).json({
לִטְעוֹת: שְׁגִיאָה.הוֹדָעָה,
הערות: ריק,
});
}
};
getNotes() שולחת את מערך ההערות באובייקט התגובה אם השאילתה מצליחה.
קבל הערה לפי תעודת זהות
ל-API תהיה גם נקודת קצה שמחזירה הערה לפי מזהה. ב-helper.js, הוסף פונקציה getNoteById().
const getNoteById = (req, res) => {
לְנַסוֹת {
const { id } = req.params;
client.query("SELECT * FROM notes WHERE id=$1", [מזהה], (שגיאה, נתונים) => {
אם (לִטְעוֹת) לזרוק לִטְעוֹת;
מילואים.סטָטוּס(200).json({
לִטְעוֹת: ריק,
הערה: נתונים.שורות[0],
});
});
} לתפוס (שגיאה) {
מילואים.סטָטוּס(500).json({
לִטְעוֹת: לִטְעוֹת.הוֹדָעָה,
הערה: ריק,
});
}
};
פונקציה זו תחזיר אובייקט JSON המכיל את ההערה ואובייקט שגיאה.
עדכן הערה לפי תעודת זהות
כדי לעדכן הערה, אתה צריך הערה ואת המזהה של אותה הערה. תקבל את ההערה מגוף הבקשה ואת המזהה מכתובת האתר.
הפונקציה updateNoteById() משתמשת בסעיף UPDATE כדי לעדכן הערה קיימת בהערה חדשה.
const updateNoteById = (req, res) => {
לְנַסוֹת {
const { id } = req.params;
const { note } = req.body;
לָקוּחַ.שאילתא(
"עדכון הערות מַעֲרֶכֶת הערה = $1איפהתְעוּדַת זֶהוּת = $2",
[הערה, מזהה],
(שגיאה, נתונים) => {
אם (לִטְעוֹת) לזרוק לִטְעוֹת;
מילואים.סטָטוּס(201).json({
לִטְעוֹת: ריק,
הוֹדָעָה: "הערה מעודכנת",
});
}
);
} לתפוס (שגיאה) {
מילואים.סטָטוּס(500).json({
לִטְעוֹת: שְׁגִיאָה.הוֹדָעָה,
הוֹדָעָה: "עדכון ההערה נכשל",
});
}
};
פונקציה זו מחזירה הודעת הצלחה אם הטבלה מעודכנת והודעת שגיאה אם לא.
מחק הערה לפי תעודת זהות
כדי למחוק הערה לפי מזהה מהטבלה השתמש בקוד הבא.
const deleteNote = (req, res) => {
לְנַסוֹת {
const { id } = req.params;
client.query("מחק מההערות WHERE id=$1", [מזהה], (שגיאה, נתונים) => {
אם (לִטְעוֹת) לזרוק לִטְעוֹת;
מילואים.סטָטוּס(200).json({
שְׁגִיאָה: ריק,
הוֹדָעָה: "הערה נמחקה",
});
});
} לתפוס (שגיאה) {
מילואים.סטָטוּס(500).json({
שְׁגִיאָה: שְׁגִיאָה.הוֹדָעָה,
הוֹדָעָה: "מחיקת ההערה נכשלה",
});
}
};
כעת לאחר שיצרת את כל פונקציות ה-CRUD, ייצא אותן.
ב-helper.js, הוסף את הדברים הבאים.
מודול.יצוא = { createNote, getNotes, getNoteById, updateNoteById, deleteNote };
אתה תייבא אותם פנימה index.js בעת יצירת נקודות הקצה של ה-API.
צור נתיבי API
השלב האחרון הוא יצירת נקודות קצה של API index.js עבור כל אחת מפעולות ה-CRUD.
התחל בייבוא הקובץ helper.js.
const db = לִדרוֹשׁ("./עוֹזֵר")
לאחר מכן, צור כל נקודת קצה.
app.get("/notes", db.getNotes);
app.get("/note/:id", db.getNoteById);
app.put("/note/:id", db.updateNoteById);
app.post("/note", db.createNote);
app.delete("/note/:id", db.deleteNote);
REST API לעדכון מסד הנתונים שלך
לאחר שתסיים, תוכל לבדוק שה-API שלך עובד על ידי שימוש בלקוח REST כמו Postman, או על ידי כתיבת בדיקות יחידה. אתה אמור להיות מסוגל להבטיח שחמש נקודות הקצה פועלות כולן כפי שאתה מצפה.
אתה יכול גם לבדוק ולנהל את הנתונים שהוספת למסד הנתונים באמצעות הכלי pgAdmin. זהו יישום GUI שמקל על ניהול מסד נתונים ואינטראקציה עם שרתי PostgreSQL.