Mongoose Model.Save方法的问题

时间:2017-08-06 06:19:32

标签: node.js mongodb mongoose promise

当我使用post api调用'userInfo'方法时,它总是给出一条消息'userSchema.save'不是函数。

我在这里做错了什么?

var userModel = mongoose.model('user_details');

module.exports.userInfo = function (req, res) {

        var userSchema = new userModel();

        new Promise(function (resolve, reject) {

            userSchema.emailID= "smid"
            userSchema.loginPassword ="smpaswd"

            userSchema.contactAddress = [{
                addressType: "Communication",           
            }]

            userSchema.favourites = [{
                hospitalid: 1234,            
            }] 

            resolve();

        }).then(function () {
            userSchema.save(function (error, data) {
                if (error) {
                    logger.error("Error while inserting record : - " + error)
                    return res.json({ "Message": error.message.split(":")[2].trim() });
                }
                else {
                    return res.json({ "Message": "Data got inserted successfully" });
                }
            })
        }).catch(function (err) {
            return res.json({ "Message": err.message });
        })   
};

1 个答案:

答案 0 :(得分:0)

我猜你创建模型对象的方式不正确。看看这个例子,在这个例子中,我们将模式定义传递给" yourSchema"所以你可能需要在对象创建中传递模式定义。

var Tank = mongoose.model('Tank', yourSchema);

var small = new Tank({ size: 'small' });
small.save(function (err) {
  if (err) return handleError(err);
  // saved!
})

// or

Tank.create({ size: 'small' }, function (err, small) {
  if (err) return handleError(err);
  // saved!
})

像这样的东西

//userSchema should exist there
var userModel = mongoose.model('user_details', userSchema);