JS - не редиректва към началната страница след изтриване на артикъл
Защо не ми редиректва? Врътка се и нищо...
https://github.com/ZornitsaSerbezova/SoftwareTechnologies/blob/master/JS/SoftUniBlog/controllers/article.js
Защо не ми редиректва? Врътка се и нищо...
https://github.com/ZornitsaSerbezova/SoftwareTechnologies/blob/master/JS/SoftUniBlog/controllers/article.js
author.articles.spice(index, count); ?
Здравей.
а следкато не редиректва какво се случва ?
или се чупи нещо и ти излиза грешка в конзолата или не влиза в else -a който е на ред 98..
ако нищо не се чупи и не влиза в else то тогава е влязло в if-a което ще рече че този артикъл го няма записън като индекс в артикълите на самия потребител.. но тогава трябва да те пренасочва към страницата за изтриване(article/delete) и там да ти изписва съответната грешка..
Edit:понеже не би меше показало всички коментари чак сега видях,че вече е отговорено на този въпрос.. и май няма опция да си изтрия коментара..
Аз установих, че проблема не е с препращането. Не се изтриват артикълите от записите за юзъра в базата. и затова зацикля. Не може. Но порблемът е, че не знам как наботи това нещо изобщо.
Ето това е грешката:
UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Cannot read property 'articles' of undefined
Ако заменя това:
let author = article.author;
с това:
let author = req.user
и това:
author.articles.splice(index, count);
с това:
User.findById(author._id, (err, author) => { author.articles.pull(id)
работи.
Здравей,
на горния ред от това "let author = article.author;" ти имаш "Article.findOneAndRemove({_id: id}).populate('author').then(article => {" което на практика казва следното
Article.findOneAndRemove({_id: id}) : накарай моделът Article да намери първия срещнат резултат като го търси по ({_id: id})..
.populate('author') : и след като го намериш намери в него полето author и го попълни с данните за този author..
.then(article => { : и след като приключиш да правиш тия работи (понеже е асинхронно и не се знае кога ще се случи точно това) вземи тия данни които ми е ги е върнало предната функция и ги сложи в локална променлива article и изпълни кода в {}
let author = article.author; казва натъпчи ми в променливата author данните за автора article.author(което би трябвало да държи данните за автора ама явно не)
и ти го заменяш с това: let author = req.user; което казва , ами автора ти е сегашния юзър... което на практика не е добра идея защото ако сегашния юзър е Admin а article е на Pesho ..
затова ти после ти се налага да го търсиш точно на кого е тоя артикъл с този код:
User.findById(author._id, (err, author) => {
author.articles.pull(id)
което мен специално ме навежда на мисълта че имаш нещо объркано в Article модела.. сега ще го огледам и него ама ще отнеме малко време :)
също така ти препоръчвам като правиш големи промени по моделите след това да изтриваш цялата база с данни и да си правиш юсерите и артикълите отначало .. понеже може да има някакви конфликти..
Аз вече смених в гитхъб с правилното решение. Не се занимавай.
На 103 ред пробвай да смениш ' ' с ` `. Мисля, че това е проблема с препращането.
Не знам какво ми говориш, но като гледам артикълите не ми се изтриват от записите на юзера
spLice
Да, оправих го, но не е това проблема... явно още преди него нещо работи....