1. تطوير الويب
3

nodejs مساعدة

  • حذف بواسطة المستخدم
  • Laithith
  • 2024-07-22T19:56:25+00:00
  • رابط مختصر

التعليقات

عرض جميع التعليقات
1
Abdelouhab_bmrf
  • 2024-07-22T20:02:27+00:00
  • أضف ردا
    • رابط مختصر

أعتقد أن المشكلة التي تواجهها تبدو وكأنها تتعلق بكيفية تعيين المسار إلى صورة الزائر الافتراضية، حيث أنه في الكود الخاص بك تقوم بتعيين مسار الصورة الافتراضية باستخدام socket.handshake.headers.host، وهو ما قد يكون السبب في حذف الصورة الافتراضية إذا كانت المسارات غير صحيحة أو مكررة.

تأكد من أن المسار الذي تقوم بتعيينه للصورة الافتراضية صحيح ويشير إلى الصورة الافتراضية الفعلية، يمكنك اختبار المسار بفتح الصورة مباشرة في المتصفح.

و أرى أنه بدلا من استخدام socket.handshake.headers.host، جرب تعيين المسار بصورة ثابتة للصورة الافتراضية بالشكل التالي:

const defaultPicPath = "/site/pic.png"; // مسار ثابت للصورة الافتراضية


const wert = OnlineUser.findIndex(lilianna => lilianna.id == data.data.id);
if (wert != -1) {
  UserInfo[data.data.id].pic = defaultPicPath;
  OnlineUser[wert].pic = defaultPicPath;
  io.emit("SEND_EVENT_EMIT_SERVER", {
    cmd: "u^",
    data: OnlineUser[wert]
  });
  if (UserInfo[data.data.id].uid) {
    UsersRepo.updateBy({
      state: "updatePic",
      uid: UserInfo[data.data.id].uid,
      pic: defaultPicPath
    });
  }
}
0
Laithith
  • 2024-07-22T20:06:55+00:00
  • أضف ردا
    • رابط مختصر

نعم مسار الصورة صحيح

ولكن لا يمكنني الغاء socket.handshake.headers.host، بسبب أن الموقع مدمج مع أكثر من رابط ولكل رابط صورة إفتراضية خاصة به

0
Abdelouhab_bmrf
  • 2024-07-22T20:09:33+00:00
  • أضف ردا
    • رابط مختصر

قبل تعيين الصورة الافتراضية، تأكد من وجود الملف في المسار المحدد، يمكنك استخدام مكتبة fs للتحقق من وجود الملف:

const fs = require('fs');
const path = require('path');


const wert = OnlineUser.findIndex(lilianna => lilianna.id == data.data.id);
if (wert != -1) {
  const defaultPicPath = `/site/${socket.handshake.headers.host}/pic.png`;
  
  fs.access(path.join(__dirname, defaultPicPath), fs.constants.F_OK, (err) => {
    if (err) {
      console.error(`Default pic not found: ${defaultPicPath}`);
    } else {
      UserInfo[data.data.id].pic = defaultPicPath;
      OnlineUser[wert].pic = defaultPicPath;
      io.emit("SEND_EVENT_EMIT_SERVER", {
        cmd: "u^",
        data: OnlineUser[wert]
      });
      if (UserInfo[data.data.id].uid) {
        UsersRepo.updateBy({
          state: "updatePic",
          uid: UserInfo[data.data.id].uid,
          pic: defaultPicPath
        });
      }
    }
  });
}
0
Laithith
  • 2024-07-26T18:29:19+00:00
  • أضف ردا
    • رابط مختصر

قمت بتجربة الكود قبل قليل وللأسف لم تنجح ، يعطي خطأ

Default pic not found ، ولا يتم حذف الصورة

تطوير الويب

مجتمع لمناقشة وتبادل الخبرات حول تطوير الويب. ناقش أحدث التقنيات، اللغات، والأدوات في عالم تطوير المواقع والتطبيقات. شارك مشاريعك، اسأل عن نصائح، وتعاون مع مطورين محترفين وهواة.

102 ألف متابع

أطلق موقعك الإلكتروني في دقائق

صمم موقعك كاملا بالسحب والإفلات بدون خبرة برمجية، واحجز مكانك على الإنترنت.

أنشئ موقعك الآن

انسخ هذا الرابط:

تنبيه