Ошибка типа: невозможно прочитать свойство 'findById' со значением NULL - PullRequest
0 голосов
/ 26 февраля 2019

Все работает нормально, за исключением случаев, когда я отправляю страницу редактирования. Кажется, он не может найти идентификатор.Пожалуйста, помогите взглянуть на приведенный ниже код и понять, что не так: сообщение об ошибке прикреплено к изображению, указанному в ссылке ниже: У меня все страницы настроены правильно:

Сообщение об ошибке находится на изображении ниже: Photo


Код:

//POST Edit page

router.post('/edit-page/:slug', function(req, res) {
  req.checkBody('title', 'Title must have a vlaue.').notEmpty();
  req.checkBody('content', 'Content must have a value.').notEmpty();

  var title = req.body.title;
  var slug = req.body.slug.replace(/\s+/g, '-').toLowerCase();
  if (slug == "") slug = title.replace(/\s+/g, '-').toLowerCase();

  var content = req.body.content;
  var id = req.body.id;
  var errors = req.validationErrors();

  if (errors) {
    res.render('admin/edit_page', {
      errors: errors,
      title: title,
      slug: slug,
      content: content,
      id: id

    });
  } else {
    Page.findOne({
      slug: slug,
      _id: {
        '$ne': id
      }
    }, function(err, page) {
      if (page) {
        req.flash('danger', 'Page slug exists, choose another.');
        res.render('admin/edit_page', {
          title: title,
          slug: slug,
          content: content,
          id: id

        });

      } else {
        console.log("I am this far...")
        page.findById(id, function(err, page) {

          if (err)
            console.log("How about here?");
          return console.log(err);
          page.title = title;
          page.slug = slug;
          page.content = content;

          page.save(function(err) {
            if (err)
              return console.log(err);
            req.flash('success', 'Page added!');
            res.redirect('/admin/pages/edit-page/' + page.slug);

          });
        });


      }

    });

  }


});

1 Ответ

0 голосов
/ 26 февраля 2019
  • Это опечатка. Используйте Page.findById вместо page.findById
  • Также page равно undefined, поскольку оно содержится в else оператора if(page)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...