【问题标题】:Posting Angular form data to MongoDB in SailsJS在 SailsJS 中将 Angular 表单数据发布到 MongoDB
【发布时间】:2016-02-15 15:54:22
【问题描述】:

我正在使用 SailsJS 和 Angular 将注册表单的数据发布到 MongoDB。我可以成功获取表单数据以记录到控制台,但它不会 POST 到数据库。

User.js

module.exports = {
  connection: 'someMongodbServer',
  tableName: 'test',
  attributes: {
    id: {
      type: 'integer',
      unique: true,
      primaryKey: true
    },
    name: {
      type: 'string',
      required: true
    },
    email: {
      type: 'email',
      unique: true,
      required: true
    },
    password: {
      type: 'string',
      required: true
    },
    address: {
      type: 'string'
    },
    phone: {
      type: 'string'
    },
    created_at: {
      type: 'datetime',
      autoCreatedAt: true
    },
    updated_at: {
      type: 'datetime',
      autoUpdatedAt: true
    },
        toJSON: function() {
            var obj = this.toObject();
            delete obj.password;
            return obj;
        }
  }
};

UserController.js

create: function(req, res) {
    var name = req.param('name');
    var email = req.param('email');
    var password = req.param('password');

    console.log(req.params.all());

    User.create({name: name, email: email, password: password}).exec(function(err, user) {
      if (err) {
        // res.send(500, {error: "DB Error"});
        res.json(err.status, {err: err});
        return;
      } else {
        req.session.user = user;
        res.send(user);
      }
    });
  }

角度控制器

angular.module('signup').controller('SignupController', ['$scope', '$state', '$http', function($scope, $state, $http) {
    // $scope.form_signup = {}

    $scope.form_submit_signup = function(req, res) {
      var params = {
        name: $scope.form_signup.name,
        email: $scope.form_signup.email,
        password: $scope.form_signup.password
      }

      $http.post('/signup', params).success(function(){
        console.log("Success!", params);
      }).error(function(err) {
        console.log("Error!", err);
      });
    }
  }]);

表格

<form ng-submit="form_submit_signup()" name="signup">
      <div class="form-group">
        <label for="exampleInputEmail1">Full Name</label>
        <input type="text" class="form-control" name="name" placeholder="Name" ng-model="form_signup.name" required>
      </div>
      <div class="form-group">
        <label for="exampleInputEmail1">Email address</label>
        <input type="email" class="form-control" name="email" placeholder="Email" ng-model="form_signup.email" required>
      </div>
      <div class="form-group">
        <label for="exampleInputPassword1">Password</label>
        <input type="password" class="form-control" name="password" placeholder="Password" ng-model="form_signup.password" required>
      </div>
      <!--
      <div class="form-group">
        <label for="exampleInputPassword1">Confirm Password</label>
        <input type="password" class="form-control" name="password" placeholder="Password" ng-model="form_signup.password">
      </div>
      -->
      <button type="submit" class="btn btn-block btn-lg btn-primary">Signup</button>
    </form>

我如何将表单数据 POST 到 Sails 中的数据库?

【问题讨论】:

    标签: javascript angularjs mongodb sails.js


    【解决方案1】:

    您的sails 应用中有此自定义操作路线:/User/create

    在您的角度控制器中,您需要放置正确的路线:$http.post('/User/create', params)

    更多信息:http://sailsjs.org/documentation/reference/blueprint-api#?action-routes

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-27
      • 2015-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-10
      • 2018-01-18
      相关资源
      最近更新 更多