Node.js Mongoose PUT失败

时间:2017-07-24 16:27:54

标签: node.js mongodb

我正在尝试使用邮递员输出mongoose数据,但它在服务器控制台中显示“TypeError:bear.save不是函数”并使节点应用程序崩溃。

在这个问题中,我在不同的端口上运行两个应用程序,并使用相同的代码运行db,正常的http应用程序可以使所有请求(POST,PUT,DEL,GET)成功,但另一个https应用程序无法发出PUT请求,它只能成功发布POST和GET。

我无法理解为什么http应用程序上的相同代码如果是代码问题则不显示错误。请帮帮我。

来自 - Here

的REST API参考
.get(function(req, res) {
    Bear.find( {ID: req.params.bear_id} , function(err, bear) {
        if (err)
            res.send(err);
        res.jsonp(bear);
    });
}) 

.put(function(req, res) {
    Bear.find( {ID: req.params.bear_id}, function(err, bear) {
        if (err)
            res.send(err);
        bear.Name = req.body.Name;
        //res.json(bear) can send data up to this line
        // save the bear (crash after following line)
        bear.save(function(err) {
            if (err)
                res.send(err);
            res.json({ message: 'Bear updated!' });
       });
 })
 });

错误登录控制台 -

TypeError: bear.save is not a function
at Promise.<anonymous> (/var/www/vhosts/mydomain.com/nodeapp.js:130:18)
at Promise.<anonymous> (/var/www/vhosts/mydomain.com/node_modules/mpromise/lib/promise.js:162:8)
at emitOne (events.js:96:13)
at Promise.emit (events.js:188:7)
at Promise.emit (/var/www/vhosts/mydomain.com/node_modules/mpromise/lib/promise.js:79:38)
at Promise.fulfill (/var/www/vhosts/mydomain.com/node_modules/mpromise/lib/promise.js:92:20)
at /var/www/vhosts/mydomain.com/node_modules/mongoose/lib/query.js:1736:26
at model.Document.init (/var/www/vhosts/mydomain.com/node_modules/mongoose/lib/document.js:251:11)
at completeMany (/var/www/vhosts/mydomain.com/node_modules/mongoose/lib/query.js:1734:12)
at cb (/var/www/vhosts/mydomain.com/node_modules/mongoose/lib/query.js:1697:11)

1 个答案:

答案 0 :(得分:0)

您可能希望使用findOne代替find