用户数据未使用Node API插入mongodb

时间:2016-09-20 10:54:17

标签: javascript angularjs node.js mongodb

我在Node.js上创建Restful API并将数据存储到Mongodb中。并致力于用户注册API。

app.js

apiRoutes.post('/signup', function(req, res) {
  if (!req.body.name || !req.body.password) {
     res.json({success: false, msg: 'Please pass Name and Password.'});
     } else {
          var newUser = new User({
            name:req.body.name, 
            password:req.body.password
          });
          console.log(req.body.name);
    // save the user
      newUser.save(function(err, data) {
       if (err) {
             return res.json({success: false, msg: 'Username already exists.'});
            }else{
            console.log(data);
            res.json({success: true, msg: 'Successful created new user.'});}
          });
       }
    });

使用Angular.js消耗API

 //factory for user register
 app.factory('RegistrationFactory',  function($resource){
    return $resource('/api/signup/:id',{id:'@_id'},{update:{method:'PUT'}});
 });

 //controller for registration
app.controller('registerCtrl', function($scope, RegistrationFactory, $location){
 $scope.regUser=new RegistrationFactory();
 $scope.register=function(){
        console.log($scope.newUser);
        $scope.regUser.$save(function(){
                            console.log("User Registerd");
                            });

        } ;

})

register.html

<div class="post" ng-controller="registerCtrl">
        <form  method="post">
          <div class="form-group">
          <label>Name</label>
          <input type="text" class="form-control" name="name" ng-model="newUser.name" />
        </div>   
        <div class="form-group">
          <label>Password</label>
          <input type="text" class="form-control" name="password" ng-model="newUser.password"/>
        </div>
        <div class="form-group">
          <button class="btn btn-success" ng-click="register()">Register</button>
        </div>
        </form>
      </div>

所以,我的问题是,这个API在POSTMAN上正常工作,但它不能用于我的HTML表单。请查看我的代码。每当我点击“注册”按钮时,它似乎就是按钮点击API没有击中。一切都没有发生。 请查看我的代码并建议我解决方案。

感谢。

1 个答案:

答案 0 :(得分:3)

来自角度控制器的

您没有将newUser对象传递给$resourceregUser将控制器代码更改为

 //controller for registration
app.controller('registerCtrl', function($scope, RegistrationFactory, $location){
$scope.register=function(){
    console.log($scope.newUser);
    $scope.regUser=new RegistrationFactory($scope.newUser);
    $scope.regUser.$save(function(){
                        console.log("User Registerd");
                        });

    } ;

})