【问题标题】:User Data is not inserting into mongodb using Node API用户数据未使用 Node API 插入 mongodb
【发布时间】:2016-09-20 19:11:40
【问题描述】:

我正在 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 似乎都没有命中。什么都没有发生。 请检查我的代码并建议我解决方案。

谢谢。

【问题讨论】:

  • 您的register 函数正在调用吗?在角边
  • 是的,它的召唤。
  • 所以你被卡在后端了?点击register后你有任何回应吗?
  • No.. 后端没有响应。但是当我在POSTMAN 中点击我的 api 时,它工作得很好。
  • 提供User类定义的例子

标签: javascript angularjs node.js mongodb


【解决方案1】:

从角度控制器您没有将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");
                        });

    } ;

})

【讨论】:

  • 是的....你的权利..现在它工作正常。但是在postman 中它的工作没有将对象传递给$resource
  • 在邮递员或角度中,您需要输入服务器端需要的指定数据。在邮递员中,您将其输入以形成数据并发送到服务器。在角度中,您需要指定数据,例如我向您展示的方式,或者您可以使用ng-submit
猜你喜欢
  • 2016-06-16
  • 2017-10-17
  • 1970-01-01
  • 1970-01-01
  • 2020-01-02
  • 1970-01-01
  • 1970-01-01
  • 2014-06-29
  • 2021-02-13
相关资源
最近更新 更多