Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ExpressJS PUT方法未定义对象问题_Javascript_Node.js_Express_Routes - Fatal编程技术网

Javascript ExpressJS PUT方法未定义对象问题

Javascript ExpressJS PUT方法未定义对象问题,javascript,node.js,express,routes,Javascript,Node.js,Express,Routes,我试图使用PUT方法更新数据库中的记录,但遇到了一个问题,对象没有定义 ReferenceError:未定义blogpost 我在路由步骤中引用了这一点,并注意到,尽管变量在我的/blogs路由中定义,这意味着它是该函数的本地变量,但在教程中,他们在路由其put方法时不会再次定义变量。他们只需调用他们计划更新的对象属性。我无法访问此对象有什么原因吗?这是一个范围问题吗 routes.js: var express = require('express'); var router =

我试图使用PUT方法更新数据库中的记录,但遇到了一个问题,对象没有定义

ReferenceError:未定义blogpost

我在路由步骤中引用了这一点,并注意到,尽管变量在我的
/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, blogpost) {
Blogpost.findById(req.params.blogpost_id, function(err, blogpost) {