Я не могу удалить коллекцию кампаний в monn goose, expressjs - PullRequest
0 голосов
/ 03 мая 2020

Моя ошибка: Я получаю эту ошибку, когда пытаюсь удалить свою коллекцию в mongodb, используя mon goose

TypeError: Cannot read property '_Id' of undefined
    at exports.postDeleteCampaign (C:\Users\RudraSimha\desktop\hackthon\controllers\admin.js:132:42)
    at Layer.handle [as handle_request] (C:\Users\RudraSimha\desktop\hackthon\node_modules\express\lib\router\layer.js:95:5)

const campaign = new Campaign ({

  Campname:req.body.campname,
  Title:req.body.title,
  Email:req.body.email,
  Start:req.body.start,
  End:req.body.end,
  Time:req.body.time,
  FacebookURL:req.body.facebooklink,
  TwitterURL:req.body.twitterlink,
  InstagramURL:req.body.instagramlink,
  LinkedinURL:req.body.linkedinlink,
  Description:req.body.editordata ,
  Primarycolor:req.body.primarycolor, 
  Secondarycolor:req.body.secondarycolor, 
  userId:req.user._id ,
  Logo:`${logo}`,
  Banner:`uploads/${filename}`
});
 campaign.save().then(post => {

  console.log(campaign);
  req.flash('success', { msg: 'Campaign Created successfully' });
     res.redirect('/create-photo-campaign');

 });

}

Мой маршрут: Это мой почтовый маршрут для удаления

exports.postDeleteCampaign = (req, res, next) => {

 Campaign.findByIdAndDelete(req.campaign._Id , (err) => {

    if (err) { return next(err); }
    req.flash('info', { msg: 'Campaign has been deleted.' });
    res.redirect('/campaign-list');
  });
};

Я хочу удалить свою коллекцию кампаний, но я пытался использовать разные пути, но бесполезно

1 Ответ

0 голосов
/ 03 мая 2020

если вы хотите удалить коллекцию, используйте

mongoose.connection.db.dropCollection('campaign', function(err, result) {
    // ...
});

findOneAndDelete () используется для удаления документов

старайтесь не передавать req и res в качестве параметров, вы помещаете express в конец вашего приложения. Передайте данные, которые вы используете для консультации, например строку идентификатора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...