2014-03-04 7 views
1

몽구스를 사용하여 db에 새 항목을 저장 한 후 값을 반환하는 데 도움이 필요합니다. 이다 여기 내 users.js을몽구스 저장 후 값 반환

var userModel = require('../models/users'); 

module.exports = { 

    findAll: function(req, res) { 
    userModel.user.findAll(function(err, users) { 
     return res.json(users); 
    }); 
    }, 

    findId: function(req, res) { 
    var id; 
    id = req.params.id; 
    userModel.user.findId(id, function(err, user) { 
     return res.json(user); 
    }); 
    }, 

    addUser: function(req, res) { 
    newUser = new userModel.user; 
    newUser.username = req.body.username; 
    newUser.password = req.body.password; 
    newUser.addUser(function(err, user) { 
     return res.json(user); 
    }); 
    } 

}; 

을 그리고 :

이 내 컨트롤러가 모습입니다

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

var UserSchema = new Schema({ 
    username: { 
    type: String, 
    required: true 
    }, 
    password: { 
    type: String, 
    required: true 
    } 
}); 

module.exports = { 

    findAll: UserSchema.statics.findAll = function(cb) { 
    return this.find(cb); 
    }, 

    findId: UserSchema.statics.findId = function(id, cb) { 
    return this.find({ 
     _id: id 
    }, cb); 
    }, 

    addUser: UserSchema.methods.addUser = function(cb) { 
    return this.save(cb); 
    } 

}; 

이 모든 작품을 좋아하지만, 그것은 단지 나에게 ADDUSER에 새로 추가 된 사용자를 반환합니다. 뉴스 가치를 추가 한 것을 포함하여 모든 항목을 반환 값으로 사용하고 싶습니다. "findAll"을 사용하는 것과 같습니다. 어떻게이 일을 할 수 있겠습니까?

+4

API 문서에 따르면 [save()'] (http://mongoosejs.com/docs/api.html#model_Model-save)는 저장된 문서 만 반환합니다. 컨트롤러의'addUser()'메쏘드 안에서 JSON 응답을 직접 보내지 않고 findAll()을 실행할 필요가있다. – bernhardw

답변

3

예, bernhardw와 같이 save()를 사용하여 추가 된 문서 외에는 아무것도 반환하지 않는 것처럼 보입니다.

나는 그의 조언에 따라 addUser()에서 findAll()을 호출했는데 이제는 완벽하게 작동합니다. - 새로운 사용자를 저장 한 후에 모든 사용자를 반환 할 수 있습니다. 감사.