保存表单中的数据

时间:2016-06-07 15:05:48

标签: javascript html angularjs node.js mongodb

我想保存从表单中获取的数据(html)。 我的表单中有相同的文件,我想将它们从html页面发送到node.js页面,然后从那里发送到mongoDB(mlab)数据库。 在我的节点页面中,我使用angular来保存我从用户那里获得的数据。 我使用ng-controller连接到js页面,并使用ng-model来保存我在输入标签中获得的数据。 我的问题是我无法将数据保存在mongoDB中?

谢谢,

HTML:

 <body ng-controller="addController">
        <h1 class="text-center">Add Activity</h1>
        <form class="form-group" ng-submit="createActivity()">
          <div class="form-group">
          <div class="col-sm-10">
          <label for="inputEmail3" class="col-sm-2 control-label">Title:</label>
            <input class="form-control" type="text" placeholder="Title" ng-model="title"></input>
            </div>
            <div class="col-sm-10">
            <label for="inputEmail3" class="col-sm-2 control-label">Age:</label>
            <input class="form-control" id="inputEmail3" type="number" placeholder="Age" ng-model="age" min="0" max="16"></input>
            </div>
            <div class="col-sm-10">
            <label for="inputEmail3" class="col-sm-2 control-label">Description:</label>
             <textarea class="form-control" id="inputEmail3" type="text" placeholder="Description" ng-model="description"></textarea>
             <br>
             </div>
             <div class="col-sm-10">
             <label for="inputEmail3" class="col-sm-2 control-label">Themes:</label>
              <input type="radio" name="themes" value="frozen" ng-model="theme">frozen &nbsp;
              <input type="radio" name="themes" value="minions" ng-model="theme">minions &nbsp;
              <input type="radio" name="themes" value="heroes" ng-model="theme">heroes
              <input type="radio" name="themes" value="princess" ng-model="theme">princess &nbsp;
              <input type="radio" name="themes" value="piraets" ng-model="theme">piraets &nbsp;
              <input type="radio" name="themes" value="none" ng-model="theme">none 
              <br>
            </div>
            <div class="col-sm-10">
            <br>
            <input type="file" name="upload" ng-model="image"></input>
            </div>
            <div class="col-sm-10">
            <br>
            <input type="submit" class="btn btn-default" name="send"></input>
            </div>
          </div>
        </form> 

JS:

var addActivityApp = angular.module('addActivityApp',['$scope','$resource']);
var Activity = $resource('/activities');
var activity = new Activity();

$scope.createActivity=function () {
    var activity = new Activity();
    activity.title = $scope.title;
    activity.age = $scope.age;
    activity.description = $scope.description;
    activity.theme = $scope.theme;
    activity.$save(function (result) {
      $scope.activities.push(result);
      $scope.title = '';
      $scope.age = '';
      $scope.description = '';
      $scope.theme = '';
    });
  }); 



addActivityApp.controller('addController',function($scope) {
    $scope.addController = model;


});

1 个答案:

答案 0 :(得分:0)

您可以尝试以下代码。检查您是否在服务器端使用相同的以下代码。

app.post('yourserverurl', function(req, res) {
    console.log(req.body) //Here all form data will display
    var InsertData = req.body;

    db.collection('restaurants').insertOne(InsertData,function(err, result) {
    assert.equal(err, null);
    console.log("Inserted a document into the collection.");
    callback();
  });


});

如果你共享你在服务器端编写的整个代码,那么我可以更简化它