2016-11-01 5 views
2

が何であるかを私はmongodbにユーザーデータを投稿しようとしていますが、私はとエラーを取得しています:は `TypeError例外を取得マングース:user.saveはfunction`ではありません - 間違っ

` TypeError例外:user.saveではありません関数 ' - これを修正する方法?ここ

は私のコードです:

var 

    express  = require('express'), 
    app   = express(), 
    bodyParser = require('body-parser'), 
    mongoose = require('mongoose'), 
    PORT  = process.env.PORT || 8080; 



//connect to db 

mongoose.connect('mongodb://3gwebtrain:[email protected]:47975/family'); 

app.use(bodyParser.urlencoded({extended : true })); 
app.use(bodyParser.json()); 


app.get('/', function(req, res) { 

    res.json({message:'works'}) 

}); 


var Schema = mongoose.Schema; 

var User = new Schema({ 

    name:String, 
    username:{type:String, required:true, index:{unique:true}}, 
    password:{type:String, required:true, select:false} 

}) 


var apiRouter = express.Router(); 


apiRouter 
    .get('/users', function(req, res){ 

     res.send("yet to get users!"); 

    }) 
    .post('/users', function(req, res) { 

     var user = User; 

     user.name = req.body.name; 
     user.username = req.body.username; 
     user.password = req.body.password; 

     user.save(function(err) { 

      if(err) { 

       console.log(err); //TypeError: user.save is not a function 

      } 

      res.send("user created!"); 

     }) 

    }) 


app.use('/api', apiRouter); 


app.listen(PORT); 
console.log('app listens at ' + PORT); 
+0

を行くために良いことがありますユーザー=ユーザー; "var user = new User();"とします。 –

答えて

4

最初のスキーマからモデルを作成:

var UserModel = mongoose.model('User', User); 

その後、

user.save(function(){}) 
を呼び出し、次にUserモデルのうち、

var user = new UserModel(req.body) 

を、オブジェクトを作成します

チェックドキュメント http://mongoosejs.com/docs/api.html#model_Model-save

1

あなたのスキーマ定義は、これに変更、またモデルを定義する必要があります。

var UserSchema = new mongoose.Schema({ 
name:String, 
username:{type:String, required:true, index:{unique:true}}, 
password:{type:String, required:true, select:false} 
}) 
var User = mongoose.model('User', UserSchema); 

次にあなたが「VARを与えて試してみてください:)

関連する問題