nodejs مساعدة
- حذف بواسطة المستخدم
- Laithith
- 2024-07-22T19:56:25+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
});
}
}
قبل تعيين الصورة الافتراضية، تأكد من وجود الملف في المسار المحدد، يمكنك استخدام مكتبة 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
});
}
}
});
}
مجتمع لمناقشة وتبادل الخبرات حول تطوير الويب. ناقش أحدث التقنيات، اللغات، والأدوات في عالم تطوير المواقع والتطبيقات. شارك مشاريعك، اسأل عن نصائح، وتعاون مع مطورين محترفين وهواة.
التعليقات