我正在使用mongoose在寄存器上创建用户对象。这工作正常,任何错误都按预期返回。
但是,我想在注册后立即记录用户(如果没有错误,请注册登录)。
我对注册表有以下内容。
register_controller:
$scope.submitRegister = function() {
AuthenticationService.register(this.details).success(function() {
$log.debug('/POST to /api/register worked');
});
}
services.js:
.service('AuthenticationService', function($http, $timeout, $q, $session, $flash) {
...
this.register = function(details) {
var register = $http.post('/api/register', details);
register.success(function() {
console.log("User added fine");
}).error(function() {
console.log("error!!!");
});
return register;
};
...
users.js:
app.post('/api/register', authentication.register);
护照的authenticate.js:
module.exports = {
...
register: function(req, res){
var User = require('./controllers/api/login_api');
User.create({name: req.body.name, email: req.body.email, password: req.body.password}, function(err){
if (err) {
console.log(err);
return;
}
console.log("User added");
return res.send(200);
});
},
...
报告错误很好,没有麻烦,但是我会认为它会报告其他东西(比如创建的对象?),我可以使用它,所以我的register_controller可以成功{{1} }。
这是.create方法的限制还是我遗漏了一些明显的东西?
谢谢。
答案 0 :(得分:3)
您的服务器代码需要更改两件事:
passport' s authenticate.js:
module.exports = {
...
register: function(req, res){
var User = require('./controllers/api/login_api');
User.create({name: req.body.name, email: req.body.email, password: req.body.password}, function(err, user){
if (err) {
console.log(err);
return;
}
console.log("User added");
return res.send(200, user);
});
},
...
我已将用户添加到您的回调Mongoose model.create api - 将创建的对象返回到CB
要更改客户端中的捕获量:
.service('AuthenticationService', function($http, $timeout, $q, $session, $flash) {
...
this.register = function(details) {
var register = $http.post('/api/register', details);
register.success(function(user) {
console.log(user);
}).error(function() {
console.log("error!!!");
});
return register;
};
...
现在您可以根据需要使用创建的用户对象