ExpressJS PUT方法未定义的对象问题
ExpressJS PUT method undefined objecty issue
我正试图使用PUT方法更新数据库中的记录,但遇到了一个未定义对象的问题。
ReferenceError: blogpost is not defined
我在路由步骤中参考了本教程,并注意到尽管变量在我的/blogs
路由中定义,这意味着它是该函数的本地变量,但在本教程中,他们在路由put方法时不会再次定义变量。他们只是调用他们计划更新的对象的属性。我不能访问这个对象有什么原因吗?这是范围问题吗?
routes.js:
var express = require('express');
var router = express.Router();
var blogDB = require('../config/blogDB.js');
var Blogpost = require('./models/blogModel.js');
//index
router.route('/')
.get(function(req, res) {
var drinks = [
{ name: 'Bloody Mary', drunkness: 3 },
{ name: 'Martini', drunkness: 5 },
{ name: 'Scotch', drunkness: 10}
];
var tagline = "Lets do this.";
res.render('pages/index', {
drinks: drinks,
tagline: tagline
});
});
//blog
router.route('/blog')
// START POST method
.post(function(req, res) {
var blogpost = new Blogpost(); // create a new instance of a Blogpost model
blogpost.title = req.body.title; // set the blog title
blogpost.content = req.body.content; // set the blog content
//Save Blog Post
blogpost.save(function(err) {
if (err)
res.send(err);
res.json({ message: 'Blog created.' });
});
}) // END POST method
// START GET method
.get(function(req, res) {
Blogpost.find(function(err, blogs) {
if (err)
res.send(err);
res.json(blogs);
});
}); // END GET method
//Route for individual blogs
router.route('/blog/:blogpost_id')
// START GET method blog by ID
.get(function(req, res) {
Blogpost.findById(req.params.blogpost_id, function(err, blog) {
if (err)
res.send(err);
res.json(blog);
});
}) // END GET method blog by ID
// START PUT method
.put(function(req, res) {
Blogpost.findById(req.params.blogpost_id, function(err, blog) {
if (err)
res.send(err);
blogpost.title = req.body.title; // update the blog title
blogpost.content = req.body.content; // update the blog content
blogpost.save(function(err) {
if (err)
res.send(err);
res.json({ message: 'Blog updated.' });
});
});
});
//about
router.get('/about', function(req, res) {
res.render('pages/about');
});
module.exports = router;
产生问题的特定区域:
// START PUT method
.put(function(req, res) {
Blogpost.findById(req.params.blogpost_id, function(err, blog) {
if (err)
res.send(err);
blogpost.title = req.body.title; // update the blog title
blogpost.content = req.body.content; // update the blog content
blogpost.save(function(err) {
if (err)
res.send(err);
res.json({ message: 'Blog updated.' });
});
});
});
Blogpost.findById(req.params.blogpost_id, function(err, blog) {
应为:
Blogpost.findById(req.params.blogpost_id, function(err, blogpost) {
相关文章:
- node.js for循环在函数调用返回之前进行迭代,从而产生对象问题
- Safari 和 IE 中的 JavaScript 日期对象问题
- Knockoutjs 绑定对象问题
- Angular2 奇怪的硬编码对象与 http.get 对象问题
- Javascript 循环 + 对象问题:如何使用循环获取对象中的必需项
- 全局对象问题
- 量角器页面对象问题
- JavaScript对象问题
- 嵌套循环未形成完整对象 - 问题
- ExpressJS PUT方法未定义的对象问题
- 显示对象的对象问题
- React-Router的历史对象问题
- javascript的对象问题
- javascript中的对象问题
- Javascript对象问题
- JavaScript:对象问题
- 谷歌图书API JSON对象问题
- WebMethod返回JSON对象问题
- 对象问题中的 Jquery 对象
- Javascript 对象问题