node.js - TypeError:无法读取 null 的属性“findById”
问题描述
一切正常,除非我提交编辑页面。似乎找不到 ID。请帮助查看下面的代码,看看有什么问题:错误消息附在下面链接中嵌入的图片中:我已正确设置所有页面:
代码:
//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);
});
});
}
});
}
});
解决方案
- 这是一个错字。使用
Page.findById
代替page.findById
- 也是因为它
page
在声明中undefined
else
if(page)
推荐阅读
- java - 具有身份验证的 Spring Boot 自定义用户
- php - PHP重新创建数组,如果它包含某些值
- python - 将较小矩阵的多个副本制作成更大的矩阵
- vb.net - 需要帮助在 VB.net 中编辑客户信息
- matlab - 在 Matlab 中读取 .pfm 文件?
- r - 在遗传算法的健身功能中使用嵌套的 for 循环使其太慢
- c - SDL 缺少录音设备
- python - 预先给定相同的数字,如何为变量分配一个新数字?
- angular - NGRX 8 效果无限期触发
- reactjs - 在“Connect(MyComponent)”的上下文中找不到“store”。要么将根组件包装在
,