اذهب إلى المحتوى

لوحة المتصدرين

  1. Mustafa Suleiman

    Mustafa Suleiman

    الأعضاء


    • نقاط

      2

    • المساهمات

      13209


  2. محمود سعداوي2

    محمود سعداوي2

    الأعضاء


    • نقاط

      1

    • المساهمات

      604


  3. عمار معلا

    عمار معلا

    الأعضاء


    • نقاط

      1

    • المساهمات

      465


  4. منتصر احمد

    منتصر احمد

    الأعضاء


    • نقاط

      1

    • المساهمات

      760


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 11/03/23 في كل الموقع

  1. أسأل كيف يمكنني إنشاء موقع دردشة بفئة العمل جانغو
    1 نقطة
  2. لم احب سكراتش هل تعلمها ضروري لدخول في مجال البرمجة،هل يمكن تعلم لغات مثل بايثون او جافسكربت بدون المرور بتجارب متعددة في سكراتش
    1 نقطة
  3. const cookies = (handler) => (req, res) => { res.cookie = (name, value, options) => cookie(res, name, value, options) return handler(req, res) } export default cookies هل يمكن شرح هذا الكود لاني لا استطيع فهمه
    1 نقطة
  4. الفكرة من استخدام الـ middleware هو إضافة وظيفة res.cookie() إلى response object، حيث أن وظيفة res.cookie() تستخدم لإنشاء ملفات تعريف الارتباط وإرسالها إلى العميل. ويتكون الكود من دالة واحدة تسمى cookies()، وتستقبل تلك الدالة دالة أخرى كمعامل، والتي ستصبح middleware الرئيسي، وترجع الدالة cookies() middleware الجديد، والذي يضيف وظيفة res.cookie() إلى response object. أي أن: const cookies = (handler) => (req, res) => { ... }: هو تعريف لدالة (cookies) وتقوم بقبول معامل واحد (handler)، وتلك الدالة تُستدعى مع معامل واحد آخر (من نوع req و res) عندما تُستدعى داخل تطبيق Node.js. الدالة تعيد دالة أخرى. وفي السطر التالي: res.cookie = (name, value, options) => cookie(res, name, value, options): تم إنشاء خاصية جديدة cookie داخل كائن الاستجابة (res)، وتلك الخاصية تمكنك من تعيين قيمة كوكيز جديدة باستخدام res.cookie(name, value, options). والسطر التالي: return handler(req, res): يتم استدعاء الدالة handler الممررة كمعامل إلى الدالة الأصلية cookies باستخدام handler(req, res)، مما يعني أن أي وظيفة أخرى تقوم باستدعاء cookies كمعالج ستتلقى معاملي req و res وستتمكن من استخدام res.cookie لتعيين قيمة كوكيز. وتستطيع تعيين كوكيز جديدة داخل معالج الطلب كما يلي: import cookies from './cookies'; const requestHandler = (req, res) => { // تعيين قيمة كوكيز باستخدام res.cookie res.cookie('user', 'Montaser', { maxAge: 3600000 }); // الرد على الطلب العادي res.send('Hello, World!'); }; // استخدام middleware لمعالج الطلب const app = express(); app.use(cookies); app.get('/', requestHandler); app.listen(3000, () => { console.log('Server is running on port 3000'); });
    1 نقطة
  5. يوجد طريقة للتحويل بين النظام السداسي والثماني بالاعتماد على قاعدة base، بالنسبة للثماني يتم في البداية تحويل الرقم وفق قاعدة base كالاتي قاعدة base عندما يكون لدينا نظام ما وليكن النظام الثماني نقوم بضرب خانات العدد بالعدد 8 مرفوعا للاس (رقم الخانة) حيث الاحاد 0 والعشرات 1 والمئات 2 والالاف 3 وهكذا من أجل كل خانة تالية نضيف 1 ثم بعد ذلك نقوم بجمع النواتج في نتيجة واحدة ولنفترض لدينا العدد 135 ولنطبق قاعدة base 5 * 8^0 + 3 * 8^1 + 1* 8^2 يساوي 5+ 24 + 64= 93 بعد ذلك نقوم بتقسيم العدد الناتج على رقم النظام الذي نحول العدد إليه وهو هنا النظام السداسي إذا سوف نقسم على 1و في كل عملية تقسيم نسجل الباقي ونحوله إلى مقابله في السداسي حيث 0 إلى 9 تبقى كما هي في حين من 10 ل 15 تكون من A إلى F وننتهي من ذلك عندما يصبح الناتج 0 ، لنطبق على الناتج السابق 93 93 \ 16 = 5 والباقي 13 -> D 5\ 16 = 0 لأننا لا نستطيع تقسيم 5 على 16 ويكون الباقي 5 حيث كما ذكرنا الاعداد من 0 إلى 9 تبقى كما هي اذا 5 -> 5 انتهى التقسيم لأن الناتج السابق 0 بعد ذلك نقوم بدمج نواتج الباقي السابقة من الأسفل للأعلى وحسب المثال يوجد في الأسفل 5 ثم أعلاه D بالتالي جواب التحويل الكامل 5D بالنسبة للتحويل من السداسي للثماني بنفس الخطوات السابقة ولكن يكون ضرب الخانات بالعدد 16 مع مراعاة الأرقام تحويل كل حرف مثل A إلى 10 و B إلى 11 و C إلى 12 و D إلى 13 و E إلى 14 و F إلى 15 ولنأخذ المثال 5D نطبق قاعدة Base كالاتي D * 16^0 + 5 *16^1 يساوي 13 * 16^0 + 5 *16^1 عوضنا مكان D=13 بالتالي يصبح الناتج 13 + 80 = 93 نقوم بالتقسيم على رقم النظام الذي نحول العدد له وهو هنا 8 93 \ 8 = 11 والباقي 5 11 \ 8 = 1 والباقي 3 1 \ 8 = 0 لأننا لا نستطيع تقسيم 0 على 8 ويكون الباقي 1 انتهى التقسيم لأن الناتج السابق 0 نقوم بدمج النواتج كما فعلنا سابقا من الأسفل إلى الأعلى بالتالي 1 ثم 3 ثم 5 بالتالي الجواب 135 وهو ناتج التحويل ولكن طريقة التحويل الأفضل والأسرع هي التحويل إلى الثنائي ثم بعد ذلك إلى النظام السادس عشر أو النظام الثماني - التحويل من النظام السداسي عشر إلى النظام الثماني لتحويل أي عدد من النظام السداسي عشر إلى النظام الثماني: نقوم أولاً بتحويله إلى النظام الثنائي وذلك باستبدال كل رقم من أرقام العدد السداسي عشر إلى مكافئه الثنائي المكون من أربعة خانات، وبعد ضم الأرقام الثنائية إلى بعضها نقوم مرة أخرى بتقسيمها إلى مجموعات من ثلاثة خانات ونستبدل جميع مجموعة برقم ثماني وبذلك نكون قد حصلنا على العدد الثماني المطلوب. مثال : حول العدد السداسي إلى مكافئه الثماني B51.DF2 نقوم بتحويل العدد السداسي عشر إلى مكافئه الثنائي فنجد أنه يساوي 101101010001,110111110010 ثم نعيد تقسيم العدد الثنائي إلى مجموعات جميع منها يتكون من ثلاثة خانات ثنائية ثم نخط العدد الثماني المكافئ لكل مجموعة ينتج لنا العدد 5521,6762 هو عدد ثماني - التحويل من النظام الثماني إلى السداسي عشر لتحويل أي عدد ثماني إلى النظام السداسي عشر: نقوم أولاً بتحويله من الثماني إلى الثنائي، ثم نقسم العدد الثنائي الناتج إلى مجموعات جميع منها يتكون من أربعة خانات، ونقوم باستبدال جميع مجموعة منها بما يكافؤها في النظام السداسي عشر. مثال: حول العدد الثماني التالي إلى مكافئه السداسي عشري : 163,45 1 -> 001 6 -> 110 3 -> 011 4 -> 100 5 -> 101 ثم نضمه إلى أربعة خانات نبدأ من قبل الفاصلة أي مع العدد ثلاثة أي 011 ونأخد رقم من آخر خانة للذي قبله فيصبح 0011 0011 -> 3 0111 -> 7 0 نحوله إلى 0000 0000 -> 0 فيكون الناتج قبل الفاصلة هو073 الصفر لا داعي له فيكون 73 الرقم الذي بعد الفاصلة نبدأ فيه من الرقم أربعة أي من الرقم 100 ونأخذ الرقم الذي بعده فيصبح 1001 1001 -> 9 01 نحوله إلى 0100 0100 -> 4 فيكون الناتج بعد الفاصلة هو94 فيصبح الناتج الكلي في النظام السداسي عشري : 73,94
    1 نقطة
  6. السلام عليكم. أواجه مشكل في حساب اللايكات حيث يقع تفعيل الدالة إلا من المرة الثانية const likeImage = async (id) => { if (!user) { navigate("/login"); return; } await axios .put(`/api/images/like/${id}`, like, { headers: { "Content-Type": "application/json", "x-auth-token": user.data.token, }, }) .then((res) => { setLike(res.data) }) .catch((err) => setError(err.response.data.msg)); }; ************************** const unLikeImage = async(id) => { if (!user) { navigate("/login"); return; }; await axios .put(`/api/images/unlike/${id}`, like, { headers: { "Content-Type": "application/json", "x-auth-token": user.data.token, }, }) .then((res) => { setLike(res.data) }) .catch((err) => setError(err.response.data.msg)); }; **************************************** <div className="menu-like"> {/* {error && <Alert error={error} />} */} <div className="like" onClick={() => likeImage(imageId)}> <i className="fa-regular fa-thumbs-up"></i> {likes.length === 0 ? "" : likes.length} </div> <div className="dislike" onClick={() => unLikeImage(imageId)}> <i className="fa-regular fa-thumbs-down"></i> </div> </div> أما بالنسبة لعدد الإعجابات {likes.length === 0 ? "" : likes.length} فلا يظهر إلا بعد تحديث الصفحة. شكرا لكم.
    1 نقطة
  7. أرفق مجلد المشروع لتفقد المشكلة، وتأكد من أن الدوال likeImage و unLikeImage تعمل بشكل صحيح وأنها تقوم بإرسال الطلبات بشكل صحيح من خلال إضافة console.log للتحقق من تنفيذ الدوال كالتالي: const likeImage = async (id) => { if (!user) { navigate("/login"); return; } try { const response = await axios.put(`/api/images/like/${id}`, like, { headers: { "Content-Type": "application/json", "x-auth-token": user.data.token, }, }); console.log("Response from likeImage:", response.data); // سيتم تسجيل الاستجابة في وحدة التحكم setLike(response.data); } catch (err) { setError(err.response.data.msg); } }; const unLikeImage = async (id) => { if (!user) { navigate("/login"); return; } try { const response = await axios.put(`/api/images/unlike/${id}`, like, { headers: { "Content-Type": "application/json", "x-auth-token": user.data.token, }, }); console.log("Response from unLikeImage:", response.data); // سيتم تسجيل الاستجابة في وحدة التحكم setLike(response.data); } catch (err) { setError(err.response.data.msg); } };
    1 نقطة
×
×
  • أضف...