Ghiath Alkhatib نشر 16 أكتوبر 2020 أرسل تقرير نشر 16 أكتوبر 2020 (معدل) مرحبا استخدم اطار express اريد تحويل Url مقالة من id الى title قمت بتثبت حزمة mongoose-slug-generator وقمت بتالي في ملف Post const mongoose = require('mongoose'); const Schema = mongoose.Schema; const slug = require('mongoose-slug-generator'); mongoose.plugin(slug); const PostSchema = new Schema({ title: { type: String, required: true }, slug: { type: String, slug: "title" } )}; و ملف router router.get('/:slug'); لكن Server توقف عن عمل يخبرني يوجد خطاء لا يذكر ماهو خطاء واين هل يوجد خطاء في طريقتي ! تم التعديل في 16 أكتوبر 2020 بواسطة Ghiath Alkhatib اقتباس
0 Yomna Raouf نشر 16 أكتوبر 2020 أرسل تقرير نشر 16 أكتوبر 2020 هل يمكمنك إرفاق صورة للطرفية كاملة حتى نتمكن من مساعدتك بشكل أفضل. شكرا لك. اقتباس
0 ayoubridouani نشر 16 أكتوبر 2020 أرسل تقرير نشر 16 أكتوبر 2020 يمكنك فقط إستخدام الطريقة التالية التي تعتمد على regex: app.get(/(.+)\.html/, function(req, res, next) { res.redirect(req.params[0].substring(0, req.params[0].length - 5)); // -5 for length of '.html' }); حتى تستعمل الروابط على الشكل التالي: http://website.com/article_title_rewrited-article_id.html سترى المزيد من المعلومات من هنا عن rewrite url في express اقتباس
0 Ghiath Alkhatib نشر 16 أكتوبر 2020 الكاتب أرسل تقرير نشر 16 أكتوبر 2020 (معدل) بتاريخ 3 ساعات قال Yomna Raouf: هل يمكمنك إرفاق صورة للطرفية كاملة حتى نتمكن من مساعدتك بشكل أفضل. شكرا لك. وجدت مشكلة يعمل سيرفر الان بتاريخ 3 ساعات قال ayoubridouani: يمكنك فقط إستخدام الطريقة التالية التي تعتمد على regex: app.get(/(.+)\.html/, function(req, res, next) { res.redirect(req.params[0].substring(0, req.params[0].length - 5)); }); حتى تستعمل الروابط على الشكل التالي: http://website.com/article_title_rewrited-article_id.html سترى المزيد من المعلومات من هنا عن rewrite url في express لماذا لا يمكنني استخدام حزمة و هي مخصصة لهذا شيئ اعتقد مشكلتي بطرف العميل عند نقر على مقالة تظهر رسالة ٤٠٤ حيث مازال رابط هو id تم التعديل في 16 أكتوبر 2020 بواسطة Ghiath Alkhatib اقتباس
0 Ghiath Alkhatib نشر 16 أكتوبر 2020 الكاتب أرسل تقرير نشر 16 أكتوبر 2020 هذه حقول في قاعدة بيانات لماذا لم يظهر حقل slug اقتباس
0 Ghiath Alkhatib نشر 16 أكتوبر 2020 الكاتب أرسل تقرير نشر 16 أكتوبر 2020 (معدل) الان يظهر حقل و يظهر رابط كالمطلوب عنوان مقال لكن بعد نقر ليه يظهر هذا خطاء Cast to ObjectId failed for value "magic-flip-cards-solving-a-common-sizing-problem" at path "_id" for model "Post" تم التعديل في 16 أكتوبر 2020 بواسطة Ghiath Alkhatib اقتباس
0 Ghiath Alkhatib نشر 16 أكتوبر 2020 الكاتب أرسل تقرير نشر 16 أكتوبر 2020 اعتقد مشكلة بتعريف متغير postId exports.delails = (req, res, next) => { let postId = req.params.id; Post.findById(postId) .populate('author', 'name') .populate('comments.author', 'name') .then(post => { if (!post) throw createError(404); res.json(post); }) .catch(next) }; قمت باستبدال id ب slug let postId = req.params.slug; ظهر خطاء Cast to ObjectId failed for value "magic-flip-cards-solving-a-common-sizing-problem" at path "_id" for model "Post" اذا بقي كما هو يظهر خطاء 404 اقتباس
0 Ghiath Alkhatib نشر 17 أكتوبر 2020 الكاتب أرسل تقرير نشر 17 أكتوبر 2020 مشكورين وجدت حل لكن لدي مشكلة بالحروف عربية exports.details = (req, res, next) => { let postId = req.body.slug; Post.findOne(postId) .populate('author', 'name') .populate('comments.author', 'name') .then(post => { if (!post) throw createError(404); res.json(post); }) .catch(next) }; اقتباس
0 Yomna Raouf نشر 17 أكتوبر 2020 أرسل تقرير نشر 17 أكتوبر 2020 بتاريخ 10 ساعات قال Ghiath Alkhatib: مشكورين وجدت حل لكن لدي مشكلة بالحروف عربية exports.details = (req, res, next) => { let postId = req.body.slug; Post.findOne(postId) .populate('author', 'name') .populate('comments.author', 'name') .then(post => { if (!post) throw createError(404); res.json(post); }) .catch(next) }; السبب في هذا هو أن هذه الحزمة لا تدعم الرموز الخاصة باللغة العربية. لحل هذه المشكلة يمكنك استخدام الحزمة التالية arSlugify مع هذه الحزمة mongose-url-slugs. و لكن أنصحك باستخدام هذه الحزمة Slugify "تدعم العربية" فهي أفضل منهم و موثوقة أكثر. بالتوثيق. اقتباس
السؤال
Ghiath Alkhatib
مرحبا استخدم اطار express
اريد تحويل Url مقالة من id الى title
قمت بتثبت حزمة mongoose-slug-generator
وقمت بتالي
في ملف Post
و ملف router
لكن Server توقف عن عمل يخبرني يوجد خطاء لا يذكر ماهو خطاء واين
هل يوجد خطاء في طريقتي !
تم التعديل في بواسطة Ghiath Alkhatib8 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.