تدير واجهة برمجة تطبيقات CRUD البيانات من خلال أربع عمليات أساسية لقاعدة البيانات: الإنشاء والقراءة والتحديث والحذف. يمكنك إنشاء واجهة برمجة تطبيقات CRUD بسيطة باستخدام Express وقاعدة بيانات PostgreSQL فقط.
ابدأ بإنشاء خادم Express الذي ستتصل به PostgreSQL. ثم ، قم بإنشاء وظائف CRUD وربطها بنقاط نهاية API. بمجرد القيام بذلك ، ستتمكن من توصيل Node بـ PostgreSQL وتنفيذ استعلامات قاعدة البيانات على كل مسار.
المتطلبات الأساسية لبناء API
لمتابعة هذا البرنامج التعليمي ، يجب عليك:
- قم بتثبيت Node على جهازك.
- ثبّت خادم PostgreSQL على جهازك.
- لديك معرفة أساسية بـ Express.js.
أنشئ خادمًا سريعًا
إلى إنشاء خادم Express، ابدأ بإنشاء دليل جديد وإدخاله:
ملاحظات مكدير
قرص مضغوط ملحوظات
ثم قم بتهيئة npm:
npm الحرف الأول
سيولد هذا الأمر ملف package.json ملف في مجلد الملاحظات. أخيرًا ، قم بتثبيت Express.
npm تثبيت التعبير
قم بإنشاء ملف جديد يسمى index.js وأضف الكود التالي.
مقدار ثابت صريح = يتطلب("التعبير")؛
مقدار ثابت التطبيق = صريح () ؛تطبيق.استعمال(التعبير.urlencoded({
وسعوا: حقيقي
}));
تطبيق.استعمال(التعبير.json())
app.listen (3000 ، () => console.log ("الاستماع على المنفذ 3000"));
سيؤدي هذا إلى إنشاء خادم جديد يستمع عند المنفذ 3000.
أنشئ قاعدة بيانات PostgreSQL
نفّذ الأمر التالي في موجه أوامر psql لإنشاء قاعدة بيانات PostgreSQL تسمى noteb.
postgres =# إنشاء قاعدة بيانات ملحوظة ب ؛
قم بتشغيل هذا الأمر إلى قائمة بجميع قواعد بيانات Postgres وتحقق من أنك أنشأت قاعدة بيانات noteb:
postgres =# \ ل
اتصل بقاعدة البيانات
اهم الاشياء اولا، قم بتوصيل تطبيق Node الخاص بك بخادم PostgreSQL. يمكنك استخدام الوحدة النمطية node-Postgres.
قم بتشغيل ما يلي لتثبيته عبر npm:
npm تثبيت ص
كممارسة جيدة ، اتصل بقاعدة البيانات في ملف منفصل.
قم بإنشاء ملف جديد يسمى db.js وأضف ما يلي.
مقدار ثابت {العميل} = يتطلب("ص") ؛
مقدار ثابت {مستخدم ، مضيف ، قاعدة بيانات ، كلمة مرور ، منفذ} = يتطلب("./dbConfig") ؛مقدار ثابت العميل = الجديد عميل({
المستعمل،
مضيف،
قاعدة البيانات،
كلمه السر،
ميناء،
});
عميل.الاتصال();
وحدة.صادرات = العميل ؛
هنا ، تقوم بتصدير سلسلة الاتصال التي ستستخدمها للتواصل مع قاعدة البيانات. لاحظ أنك تقرأ إعدادات اتصال قاعدة البيانات من ملف تكوين يسمى dbConfig.js. لذلك ، قم بإنشاء dbConfig.js وأضف البيانات التالية إليه.
وحدة.صادرات = {
المستعمل: "{dbUser}",
مضيف: "{dbHost}",
قاعدة البيانات: "ملحوظة",
كلمه السر: "{dbPassword}",
المنفذ: 5432 ،
};
تذكر استبدال تفاصيل قاعدة البيانات بقيمك المحلية.
قم بإنشاء جدول PostgreSQL
في موجه أوامر psql ، قم بإنشاء جدول يسمى ملاحظات. لتبدأ ، اتصل بقاعدة بيانات noteb باستخدام الأمر \ c.
postgres =# \ ج ملحوظة ب
بعد ذلك ، قم بإنشاء جدول في قاعدة البيانات المتصلة باستخدام الأمر CREATE TABLE.
ملحوظة =# إنشاء ملاحظات الجدول (
معرف المفتاح التسلسلي الأساسي ،
note VARCHAR (255)
);
هذا الجدول بسيط للغاية. يحتوي فقط على معرف وهو مفتاح أساسي تم إنشاؤه تلقائيًا وحقل نصي يسمى ملاحظة.
قم بإنشاء ملاحظة
بدلاً من تنفيذ عمليات CRUD في المسارات ، أنشئ وظائف تتفاعل مع قاعدة البيانات في ملف منفصل.
قم بإنشاء ملف مساعد يسمى المساعد. js واستورد كائن الاتصال من db.js.
مقدار ثابت العميل = يتطلب("./db") ؛
استخدم التعليمات البرمجية التالية لإنشاء وظيفة createNote ().
مقدار ثابت createNote = (req، res) => {
محاولة {
مقدار ثابت {note} = req.body ؛إذا (! ملاحظة) {
يرميخطأ("أرسل ملاحظة في طلب نص ") ؛
}
عميل.استفسار(
"إدراجداخل ملاحظات (ملاحظة) القيم ($1)",
[ملاحظة],
(يخطئ ، البيانات) => {
الدقة.الحالة(201).json({
خطأ: لا شيء,
رسالة: "تم إنشاء ملاحظة جديدة",
});
}
);
} قبض على (خطأ) {
الدقة.الحالة(500).json({
خطأ: خطأ.رسالة,
الرسالة: "فشل في خلقالجديد ملاحظة"،
});
}
};
تتحقق هذه الوظيفة أولاً مما إذا كان نص الطلب يحتوي على ملاحظة. إذا كانت الملاحظة غائبة ، فإنها تلقي بخطأ.
لإنشاء ملاحظة ، تستخدم الوظيفة جملة INSERT. تقوم بإرجاع كائن JSON يحتوي على رسالة خطأ فارغة ورسالة نجاح إذا نجحت.
احصل على كافة الملاحظات
للحصول على جميع الملاحظات من الجدول ، استخدم عبارة SELECT *.
مقدار ثابت getNotes = (req، res) => {
محاولة {
client.query ("حدد * من الملاحظات"، (يخطئ ، البيانات) => {
إذا (يخطئ) يرمي يخطئ.
الدقة.الحالة(200).json({
يخطئ: لا شيء,
ملحوظات: بيانات.rows,
});
});
} قبض على (خطأ) {
الدقة.الحالة(500).json({
يخطئ: خطأ.رسالة,
ملحوظات: لا شيء,
});
}
};
يرسل getNotes () مصفوفة الملاحظات في كائن الاستجابة إذا كان الاستعلام ناجحًا.
احصل على ملاحظة عن طريق المعرف
سيكون لواجهة برمجة التطبيقات أيضًا نقطة نهاية تقوم بإرجاع ملاحظة بواسطة المعرف. في helper.js ، أضف دالة getNoteById ().
مقدار ثابت getNoteById = (req، res) => {
محاولة {
مقدار ثابت {id} = req.params ؛
client.query ("حدد * من الملاحظات حيث المعرف = 1 دولار"، [معرف] ، (يخطئ ، البيانات) => {
إذا (يخطئ) يرمي يخطئ.
الدقة.الحالة(200).json({
يخطئ: لا شيء,
ملاحظة: بيانات.rows[0],
});
});
} قبض على (خطأ) {
الدقة.الحالة(500).json({
يخطئ: يخطئ.رسالة,
ملاحظة: لا شيء,
});
}
};
ستعيد هذه الوظيفة كائن JSON يحتوي على الملاحظة وكائن خطأ.
تحديث الملاحظة بالمعرف
لتحديث ملاحظة ، تحتاج إلى ملاحظة ومعرف تلك الملاحظة. ستحصل على الملاحظة من نص الطلب والمعرف من عنوان URL.
تستخدم الدالة updateNoteById () بند UPDATE لتحديث ملاحظة موجودة بملاحظة جديدة.
مقدار ثابت updateNoteById = (req، res) => {
محاولة {
مقدار ثابت {id} = req.params ؛
مقدار ثابت {note} = req.body ؛
عميل.استفسار(
"تحديث ملحوظات تعيين ملاحظة = دولار1أينهوية شخصية = $2",
[ملاحظة ، معرف],
(يخطئ ، البيانات) => {
إذا (يخطئ) يرمي يخطئ.
الدقة.الحالة(201).json({
يخطئ: لا شيء,
رسالة: "ملاحظة محدثة",
});
}
);
} قبض على (خطأ) {
الدقة.الحالة(500).json({
يخطئ: خطأ.رسالة,
رسالة: "فشل تحديث الملاحظة",
});
}
};
تقوم هذه الوظيفة بإرجاع رسالة نجاح إذا تم تحديث الجدول ورسالة خطأ إذا لم يتم تحديثها.
حذف الملاحظة بالمعرف
لحذف ملاحظة عن طريق المعرف من الجدول ، استخدم الكود التالي.
مقدار ثابت deleteNote = (req، res) => {
محاولة {
مقدار ثابت {id} = req.params ؛
client.query ("احذف من الملاحظات حيث المعرف = 1 دولار"، [معرف] ، (يخطئ ، البيانات) => {
إذا (يخطئ) يرمي يخطئ.
الدقة.الحالة(200).json({
خطأ: لا شيء,
رسالة: "تم حذف الملاحظة",
});
});
} قبض على (خطأ) {
الدقة.الحالة(500).json({
خطأ: خطأ.رسالة,
رسالة: "فشل حذف الملاحظة",
});
}
};
الآن بعد أن قمت بإنشاء جميع وظائف CRUD ، قم بتصديرها.
في helper.js ، أضف ما يلي.
وحدة.صادرات = {createNote، getNotes، getNoteById، updateNoteById، deleteNote} ؛
سوف تقوم باستيرادها بتنسيق index.js عند إنشاء نقاط نهاية API.
إنشاء مسارات API
الخطوة الأخيرة هي إنشاء نقاط نهاية API بتنسيق index.js لكل من عمليات CRUD.
ابدأ باستيراد ملف helper.js.
مقدار ثابت ديسيبل = يتطلب("./المساعد")
بعد ذلك ، قم بإنشاء كل نقطة نهاية.
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 لتحديث قاعدة البيانات الخاصة بك
بمجرد الانتهاء من ذلك ، يمكنك التحقق من أن واجهة برمجة التطبيقات الخاصة بك تعمل باستخدام عميل REST مثل Postman ، أو عن طريق كتابة اختبارات الوحدة. يجب أن تكون قادرًا على التأكد من أن جميع نقاط النهاية الخمسة تعمل كما تتوقع.
يمكنك أيضًا فحص وإدارة البيانات التي أضفتها إلى قاعدة البيانات باستخدام أداة pgAdmin. إنه تطبيق واجهة المستخدم الرسومية الذي يجعل من السهل تنفيذ إدارة قاعدة البيانات والتفاعل مع خوادم PostgreSQL.