آموزش جاوااسکریپت › انجمن ها › Nodejs › ساخت فیلد مجازی
برچسب ها: nodejs
- این موضوع 12 پاسخ، 4 کاربر را دارد و آخرین بار در 2 سال، 11 ماه پیش بدست مهدی حسن زاده بهروزرسانی شده است.
-
نویسندهنوشتهها
-
mousavi.amir1616مشارکت کننده
سلام وقت بخیر
توی قسمت 27 وقتی فیلد مجازی برای یوزر ها درست میکنم تنها فقط اطلاعات خوده یوزر رو میاره و درس های رو که درست کرده رو نمیاره فکر میکنم متدpopulate دچار تغییراتی شده و نمیشه آدرس فیلد رو بهش داد چون ارور میده و باید مقدار فیلد ref رو بهش داد اگه میشه یه بررسی کنید ؟؟mousavi.amir1616مشارکت کنندهلینک پروژه رو چطوری بفرستم اینجا نمیشه لینک فرستاد؟؟/
علیرضامدیرکلمتود populate تغییری نداشته مقادیر refو localField و foriegnField درست set کردین؟؟
mousavi.amir1616مشارکت کنندهبله درست set شده
کاملا مثل فیلمعلیمشارکت کنندهپروژه شما رو بررسی کردم و سرشار از error هست!! این ارور ها رو اصلا بررسی کردین ؟؟
mousavi.amir1616مشارکت کنندهپروژه ام اجرا میشه به صورت کامل فقط توی قسمت 27 اونجایی که از populate استفاده میشه تا نام دوره رو در قسمت مدیریت ویدئو ها نشون بده رو انجام نمیده
بعدشم شما داخل populate مقدار فیلد رو قرار میدن اما پروژه من باید بهش مقدار ref رو داد مشکلی نداره یه نمونه شو میشه بگید ؟؟؟علیرضامدیرکلبه populate باید مقدار virtual filed رو بدین که تو کدتون از عبارت courses11 استفاده کردین!
JavaScript12345Course.virtual('episodes', {ref : 'Episode',localField : '_id',foreignField : 'course'})await Course.findById(courseId).populate(‘episodes’).exec();
mousavi.amir1616مشارکت کنندهdorost nashod bazam ?
http://s12.picofile.com/file/8399463726/Capture.PNGmousavi.amir1616مشارکت کنندهاین مواردی رو که گفتید رو انجام دادم اما بازم درست نشد ؟؟
http://s12.picofile.com/file/8399463726/Capture.PNGعلیمشارکت کنندهدوست عزیز معلوم هست اصلا شما هدفتون چیه! مواردی که گفتم که هیچ کدوم اعمال نشده روی سورسی که فرستادین !!!!!!!!!
مهدی حسن زادهمدیرکلداخل مدل course درست Export نگرفتین حتما اینو جایگزین کنید
module.export = mongoose.model(‘Course‘, Course)داخل مدل user
JavaScript12345User.virtual('courses', {ref : '<strong>Course</strong>',localField : '_id',foreignField : 'user'})دقت کنید من یک بار دیگه یه توضیح کوتاه برای populate بدم …. زمانی که شما در یک collection قیلد مرتبط با یک collection دیکه رو ندارید باید virtual field تعریف کنید داخل مدل مورد نظر و اگر داخل collection فیلد مرتبط با یک collection دیگه وجود داشت خب دیگه نیازی به virtual field نیست و مستقیما از عنوان فیلد داخل populate استفاده میکنید دقت کنید وقتی virtual field تعریف میکنید باید ref رو برابر با collection دوم قرار بدین با عنوانی که از اون collection داخل مدلش export گرفتین البته localField و foreignField رو هم باید مشخص کنید.
برای همه مدل ها این قاعده رو رعایت کنید تا با چنین مشکلاتی رو به رو نشین الان توی مدل user هم شما باز این مشکل رو دارین
module.export = mongoose.model(‘User‘, User)
اگر از هرچیری جز User استفاده می کنید تمام فراخوانی ها هم باید مطابق او انجام بشه -
نویسندهنوشتهها