2017-06-22 10 views
0

ではないでしょうか?私はここに明示はTypeError:この問題を解決する方法を</p> <blockquote> <p>TypeError: user.save is not a function</p> </blockquote> <p>:User.saveのように私はMongoDBのために、ユーザデータを投稿しようとしていますが、私はエラーを取得しています機能

を使用しています

は私のコードです:

router.post('/', function (req, res) { 
    let params = { 
    id: req.body.id, 
    name: req.body.name 
    } 
    User 
    .save({ params }) 
    .find() 
    .then((data) => { 
     res.render('index', { title: 'List', data: data }); 
    }) 
    .catch((err) => { 
     return res.send(err); 
    }); 
}) 

は、これが私のスキーマです:

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 

var User = new Schema({ 
    id: String, 
    name: String 
}); 

User.pre('save', function (next) { 
    next(); 
}); 

module.exports = mongoose.model('User', User); 
+1

'.save()'は "インスタンスメソッド"です。この文脈では、['.create()'](http://mongoosejs.com/docs/api.html#model_Model.create)が必要です。 –

答えて

0

あなたは新しいUserインスタンスを作成し、その上saveを呼び出す必要があり

router.post('/', function (req, res) { 
    let user = new User ({ 
    id: req.body.id, 
    name: req.body.name 
    }) 

    user.save((err) => { 
       if (err) { 
        return res.send(err); 
       } 

       User 
       .find() 
       .then((data) => { 
        res.render('index', { title: 'List', data: data }); 
       }) 
       .catch((err) => { 
        return res.send(err); 
       }); 
    }); 
}) 
+0

新しいインスタンスを作成する必要がある理由を教えてください。 – HKS

+0

'save'メソッドはインスタンスメソッドです。 'User'型ではなく、保存したいインスタンス上で呼び出すのが一般的です。 –

関連する問題

 関連する問題