Rayden Storm نشر 25 أبريل 2021 أرسل تقرير نشر 25 أبريل 2021 لدي form <form id="login" action="userlogin" method="post"> <div> <label for="email">Email: </label> <input type="text" id="email" name="email"></input> </div> <input type="submit" value="Submit"></input> </form> وهذه هي ال endpoint app.post('/userlogin', function(req, res){ var email = req.query.email; console.log(email) } email ترجع undefined ماهو المشكل ؟ 1 اقتباس
0 Wael Aljamal نشر 25 أبريل 2021 أرسل تقرير نشر 25 أبريل 2021 يبدو أن form يرسل بيانات بطريقة post وبهذه الحالة تُرسل البيانات ضمن الطلبية request ضمن body. يمكنك قراءة هذه parameter من req.body ثم اسم الحقل المطلوب. var email = req.body.email; 1 اقتباس
0 Adnane Kadri نشر 25 أبريل 2021 أرسل تقرير نشر 25 أبريل 2021 (معدل) إضافة إلى ما تفضل الأخ @Wael Aljamalبشرحه . طبقا للتوثيق الرسمي فإن الخاصية query عبارة عن كائن يحتوي كل الخصائص لكل بارمتر ممرر في الروات . و في حالة تعطيل الquery-parser فإن الخاصية query ستقوم بإعادة كائن فارغ و بطبيعة الحال فإن أي قراءة لخاصية عن طريق query ستقوم بإعادة undefined , ويخص بالقول طلبيات الـ GET فقط أي أنه معطل في ما غير ذلك . فحل المشكلة هو إما بتغيير الطريقة إلى GET فيكون : <form id="login" action="userlogin" method="GET"> <div> <label for="email">Email: </label> <input type="text" id="email" name="email"></input> </div> <input type="submit" value="Submit"></input> </form> أو بالقراءة من الPOST . قد تحتاج تسطيب body parser في نسخ متقدمة من Express (+4.16) و من ثم استعماله على هذا النحو : قم بتسطيب الحزمة : npm install --save body-parser ثم استعمالها بشكل Globally : var bodyParser = require('body-parser') app.use( bodyParser.json() ); // لدعم تشفير الجيسون في البودي app.use(bodyParser.urlencoded({ // لدعم تشفير اليو ار ال في البودي extended: true })); أما ان كنت تستخدم نسخ أقل من 4.16 فتستطيع مباشرة : app.use(express.json()); // دعم تشفير الجيسون في البودي app.use(express.urlencoded()); // دعم تشفير اليو ار ال في البودي ومن ثم القراءة على هذا النحو : app.post('/your-end-point', function(req, res) { var email = req.body.email; }); تم التعديل في 25 أبريل 2021 بواسطة Adnane Kadri أخطاء إملائية 2 اقتباس
0 عبدالله عبدالرحمن11 نشر 26 أبريل 2021 أرسل تقرير نشر 26 أبريل 2021 (معدل) إذا استخدمت الطريقة GET في ال Form فهنا سيتم إرسال البيانات عبر الرابط وهي تسمى Queries وهنا يمكنك استخدام هذا الكود للحصول على البيانات app.get('/userlogin', function(req, res){ var email = req.query.email; console.log(email) } فالQueries هي للطريقة GET ولكن انت استخدمت الطريقة POST لهذا فإن البيانات هذه المرة لن تذهب عبر الرابط ولن يتم إضافة Queries ولكن سيتم إرسال البيانات عبر مايسمى بال body وعند إستقبالها من الخادم يجب عليك الحصول عليها من body وليس query كما هو مبين في الكود app.post('/userlogin', function(req, res){ var email = req.body.email; console.log(email) } وايضا ستحتاج لإستخدام مايسمى بال middleware كما وضح الأخ عدنان لكي تستطيع القراءة من الbody تم التعديل في 26 أبريل 2021 بواسطة عبدالمجيد الجرادي اقتباس
السؤال
Rayden Storm
لدي form
وهذه هي ال endpoint
email ترجع undefined ماهو المشكل ؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.