Rayden Storm نشر 13 يونيو 2021 أرسل تقرير نشر 13 يونيو 2021 mongodb قاعدة بيانات جيدة لكن كاءن الاخطاء الذي يصدر منه معقد وأحيانا غير مفهوم وتساءلاتي يمكن بنيها على هذا ال model onst mongoose = require('mongoose'); const Schema = mongoose.Schema; const addonsSchema = new Schema({ name: { type: String, required: true, lowercase: true, }, description: { type: String, required: true, lowercase: true, }, imageUrl: { type: String, required: true, }, price: { type: Number, required: true, }, }); const AddOns = mongoose.model('AddOns', addonsSchema); module.exports = AddOns; اولا كيف يمكن ارسال رسالة خطا خاصة بكل مفتاح ثانيا كيف يمكن اعتراض الخطأ القادم من mongo واعادة تعديله مثلا ليكون { messages:[{name:"name is reqiured",.....}] } اقتباس
0 Nuhla Almasri نشر 13 يونيو 2021 أرسل تقرير نشر 13 يونيو 2021 أولا عملية معالجة الأخطاء تحتاج الى تنفيذ أمور معينة على قاعدة البيانات بحيث أنه لن يتبين لك ما هية الأخطاء سوي عندما تقوم بعملية ادخال أو تعديل أو حذف هنا يتبين لك ما الحاطاء التي تحدث بكل الأحوال عند القيام بعمل دالة تقوم بإدخال بيان الى قاعدة البيانات فمن المهم دائما القيام بعمل try ... catch مثال على ذلك مايلي // هنا نقووم بتعريف الدالة التي تقوم بإدخال البيان function InsertData(doc, cd /* هذه دالة أخرى نقوم بتمريرها و أحذ الناتج منها سواؤ كانت خطأ أو الأدخال تم بشكل صحيح*/){ try { collection.Insert(doc); // هنا نقوم بأستعمال إسم الدالة التي قمنا بتمريرها و تمرير أن النتيجة صحيحية cd({result:"Done"},null) } catch (MongoWriteConcernException ex) { if (ex.Code == 11000) //هنا يمكنك أن تقوم بعمل exception //throw new YourConflictException("User already exists for username and/or email"); // أو بأرسال الخطأعن طريق الدالة كالتالي cd(null,{error:"MongoWriteConcernException") else // throw ex; cd(null,{error:"Other Exceptions") } } // و هنا الدالة نستخدمها مثلا بال Controllers // بالشكل النالي InsertData(doc, function(data, error){ // طبعا هنا يمكنك أن تحدد نوع ال statuse if(error) res.send(error) // طبعا هنا يمكنك أن تحدد نوع ال statuse res.send(data) }) اقتباس
0 Mohammad Al Eik نشر 21 ديسمبر 2021 أرسل تقرير نشر 21 ديسمبر 2021 (معدل) بإمكانك القيام بعمليات التحقق وإرسال الخطأ الى المستخدم , عن طريق مكتبة express-validator . اولاً قم بتحميل المكتبة باستخدام موجه الأوامر داخل مجلد المشروع الخاص بك npm install --save express-validator المثال الآتي يوضح كيفية استعمال المكتبة : //برنامج بسيط لأنشاء حساب بواسطة مدخلات const express = require('express'); const app = express(); app.use(express.json()); app.post('/user', (req, res) => { User.create({ username: req.body.username, password: req.body.password, }).then(user => res.json(user)); }); نريد أن نتحقق من المدخلات القادمة من ال request const { body, validationResult } = require('express-validator'); app.post( '/user', // هنا نضع المدققين body('username').notEmpty(), body('password').isLength({ min: 5 }), (req, res) => { // نخزن في هذا المتغير نتائج التدقيق const errors = validationResult(req); if (!errors.isEmpty()) { //هنا نقوم بإرسال مصفوفة الأخطاء إلى المستخدم return res.status(400).json({ errors: errors.array() }); } User.create({ username: req.body.username, password: req.body.password, }).then(user => res.json(user)); }, ); ويمكنك الإطلاع على جميع المدققات في هذه المكتبة من هنا تم التعديل في 21 ديسمبر 2021 بواسطة Mohammad Al Eik اقتباس
السؤال
Rayden Storm
mongodb قاعدة بيانات جيدة لكن كاءن الاخطاء الذي يصدر منه معقد وأحيانا غير مفهوم وتساءلاتي يمكن بنيها على هذا ال model
{ messages:[{name:"name is reqiured",.....}] }
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.