Samer Alashqar نشر 28 مارس 2022 أرسل تقرير نشر 28 مارس 2022 (معدل) السلام عليكم.. اريد ان اخزن مصفوفة في mongoDB لكن عندما اضع log يتم ارجاع undefined .. ajax : $('#add-product').submit(function(e) { e.preventDefault() var proClassification = $('.selectpicker').val(); //returns ['جميع المنتجات', 'عروضنا'] console.log(proClassification) $.ajax({ type: 'POST', url: `${serverAddress}/product/add`, data: {proClassification:proClassification }, success: (res) => { alert('success'); }, error: (er) => { alert('err'); } }) }) mongoose modules : const mongoose = require('mongoose'); const productSchema = new mongoose.Schema({ proClassification:{ type:[String] }, }); module.exports = mongoose.model('Product', productSchema); controller: exports.addProduct = (req,res) => { const {proClassification} = req.body; const product = new Product ({ proClassification, }); product.save().then(product => { res.status(201).json(product); }).catch(error => { console.log(error) res.status(500).send(error); }); } تم التعديل في 28 مارس 2022 بواسطة Wael Aljamal توضيح السؤال 1 اقتباس
0 Wael Aljamal نشر 28 مارس 2022 أرسل تقرير نشر 28 مارس 2022 بتاريخ 6 دقائق مضت قال Samer Alashqar: نعم تصل لكن يتم الرد ب undefined .. عند تجربتي سابقا بتخزين المصفوفة باستخدام jquery serializearray يتم تخزينها لكن لا اريد ان استخدم serializearray هل هناك طريقة افضل ؟ إن طريقةاستقبال رد 201 تختلف عن 200 هل يمكنك تجريب رد حالة 200 أين تقرأ الرد ب undefined? serializearray ضرورية لأن اي شيء يتم تمثيله كسلسلة نصية لنستطيع وضعه في قاعدة البيانات، فهي لاتقبل تخزين كائنات برمجية مباشرة 1 اقتباس
0 Wael Aljamal نشر 28 مارس 2022 أرسل تقرير نشر 28 مارس 2022 على الأغلب المشكلة في استخدام جيكويري، طالما أنه لدينا أكثر من عنصر، يتوجب المرور عليهم بحلقة ثم قراءة كل منهم. إما نستخدم حلقة each let proClassification = []; $.each($(".selectpicker"), function(){ proClassification.push($(this).val()); }); console.log(proClassification); أو map var proClassification = $('.selectpicker').map(function() { return $(this).attr('value'); }).toArray(); console.log(proClassification); 1 اقتباس
0 Samer Alashqar نشر 28 مارس 2022 الكاتب أرسل تقرير نشر 28 مارس 2022 (معدل) بتاريخ 15 دقائق مضت قال Wael Aljamal: على الأغلب المشكلة في استخدام جيكويري، طالما أنه لدينا أكثر من عنصر، يتوجب المرور عليهم بحلقة ثم قراءة كل منهم. إما نستخدم حلقة each let proClassification = []; $.each($(".selectpicker"), function(){ proClassification.push($(this).val()); }); console.log(proClassification); أو map var proClassification = $('.selectpicker').map(function() { return $(this).attr('value'); }).toArray(); console.log(proClassification); قمت بالتجربة بالفعل لكن المشكلة في server-side حيث انه لايقوم بتخزينها و انما يرد ب مصفوفة فارغة .. تم التعديل في 28 مارس 2022 بواسطة Samer Alashqar 1 اقتباس
0 Wael Aljamal نشر 28 مارس 2022 أرسل تقرير نشر 28 مارس 2022 بتاريخ 1 دقيقة مضت قال Samer Alashqar: قمت بالتجربة بالفعل لكن المشكلة في server-side حيث انه لايقوم بتخزينها و انما يرد ب undefined حاول طباعة proClassification ضمن الدالة add product و اخبرنا بما يظهر. وادتأكد هل الطلبة تصل لهذا المتحكم. اقتباس
0 Samer Alashqar نشر 28 مارس 2022 الكاتب أرسل تقرير نشر 28 مارس 2022 (معدل) بتاريخ 4 دقائق مضت قال Wael Aljamal: حاول طباعة proClassification ضمن الدالة add product و اخبرنا بما يظهر. وادتأكد هل الطلبة تصل لهذا المتحكم. نعم تصل لكن يتم الرد ب undefined .. عند تجربتي سابقا بتخزين المصفوفة باستخدام jquery serializearray يتم تخزينها لكن لا اريد ان استخدم serializearray هل هناك طريقة افضل ؟ تم التعديل في 28 مارس 2022 بواسطة Samer Alashqar اقتباس
0 Samer Alashqar نشر 28 مارس 2022 الكاتب أرسل تقرير نشر 28 مارس 2022 exports.addProduct = (req,res) => { var proClassification = req.body.proClassification; //returns undefined console.log(proClassification) const product = new Product ({ proClassification, }); product.save().then(product => { res.status(200).json(product); }).catch(error => { console.log(error) res.status(500).send(error); }); } قمت بتجربة الرد ب 200 لكن نفس المشكلة اقتباس
0 Wael Aljamal نشر 28 مارس 2022 أرسل تقرير نشر 28 مارس 2022 بتاريخ 15 دقائق مضت قال Samer Alashqar: exports.addProduct = (req,res) => { var proClassification = req.body.proClassification; //returns undefined console.log(proClassification) const product = new Product ({ proClassification, }); product.save().then(product => { res.status(200).json(product); }).catch(error => { console.log(error) res.status(500).send(error); }); } قمت بتجربة الرد ب 200 لكن نفس المشكلة أرجو مراجعة التعليق السابق بما يتعلق ب serializearray اقتباس
السؤال
Samer Alashqar
السلام عليكم..
اريد ان اخزن مصفوفة في mongoDB لكن عندما اضع log يتم ارجاع undefined ..
ajax :
mongoose modules :
controller:
توضيح السؤال
7 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.