Muhannad Bahurmoz نشر 23 مارس 2023 أرسل تقرير نشر 23 مارس 2023 السلام عليكم و رحمة الله و بركاته , رمضان مبارك على الجميع, لدي متغير من نوع function scoped باسم firstName كما موضح في الصورة التالية و اريد الوصول إليه من داخل داله أخرى , هل توجد طريقة لفعلها ؟ و شكرًا لكم اقتباس
0 Asem Mohamed نشر 23 مارس 2023 أرسل تقرير نشر 23 مارس 2023 لا يمكن الوصول إلى متغير داخل دالة من دالة أخرى ولكن يمكنك إرجاعه return أو عمل متغير global ووضع قيمة له من داخل الدالة بحيث تساوي قيمة المتغير الداخلي هنا ايضا يمكنك عمل دالة مستقلة تاخذ ال req.body وتحسب منه ال firstname وترجعه بحيث داخل ال route تنادي الدالة وتمرر لها الbody فقط 1 اقتباس
0 Mustafa Suleiman نشر 23 مارس 2023 أرسل تقرير نشر 23 مارس 2023 إضافة دالة داخل الـ route وتمرير قيمة req.body إلى هذه الدالة وإرجاع قيمة firstName من داخلها: // دالة ترجع قيمة الاسم الذي تريده function calculateFirstName(obj) { return obj.firstName; } router.post('/', (req, res) => { const obj = req.body; const firstName = obj.firstName, lastName = obj.lastName, age = obj.age, Class = obj.class, lessons; const StudentId = Date.now(); // يتم نداء الدالة هنا وإعطائها المعامل بالبيانات اللازمة const calculatedFirstName = calculateFirstName(req.body); db.run(`INSERT INTO Students (StudentId, FirstName, LastName, Age, Class, RegDate, LessonId) VALUES (${StudentId}, "${firstName}", "${lastName}", ${age}, "${Class}", "${RegDate}", ${less}`, (err) => { if (err) return console.error(err); console.log(`Student ${firstName} ${lastName} has been added successfully`); res.redirect('/add-details'); }); }); بعد ذلك يمكنك استخدام الدالة في المكان الذي تريده 1 اقتباس
0 عمر قره محمد نشر 23 مارس 2023 أرسل تقرير نشر 23 مارس 2023 قم بتعريف المتغير خارج الدالة ولكن لا تعطيه أي قيمة ثم في داخل الدالة تقوم بإعطائه المعلومات التي تريدها، مثل : let firstName; // عرفنا المتغير خار ج الدوال جميعاً const fun1 = (data)=>{ firstName=data; // نسند القيمة للمتغير من الدالة الأولى } const fun2 = (data)=>{ console.log(firstName); // data سيعيد الـ } ولكن هذه الطريقة لن تعمل بالنسبة لك لأن الدالة الثانية لديك قد تحدث قبل ان تحدث الدالة الاولى وبالتالي سيكون المتغير firstName فارغاً أو يحتوي على معلومات المستخدم السابق. والشكل الاصح للعملية هو إضافة middleware تقوم بإحضار هذه البيانات من قاعدة البيانات في كل من الطلبين، والشكل الاعتيادي ان تستخدم هذه الـ middleware البيانات المخزنة في الـ token بعد التحقق منه لتقوم بإحضار بيانات المستخدم ثم تمرر هذه البيانات لكل الطلبات. 1 اقتباس
السؤال
Muhannad Bahurmoz
السلام عليكم و رحمة الله و بركاته , رمضان مبارك على الجميع,
لدي متغير من نوع function scoped باسم firstName كما موضح في الصورة التالية و اريد الوصول إليه من داخل داله أخرى , هل توجد طريقة لفعلها ؟
و شكرًا لكم
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.