使用MEAN存储数据

时间:2016-12-13 09:18:21

标签: angularjs mongodb express mongoose mean

我需要学校项目的帮助。我正在创建一个应用程序来创建和更新需要解决的问题列表。

我有一个输入字段,我应该插入问题然后它应该生成一个ID,状态为“打开”和日期戳。

然后问题将显示在我的输出表中。我已经解决了我可以在数据库中显示什么。现在我需要解决im存储新数据的部分。

我的计划是使用ng-click我的按钮AddIssue并调用一个名为AddIssue的函数。然后使用$ http post发送数据,然后使用moongose存储数据

HTML

 <div ng-controller="inputCtrl">
 <p>New issue <input class="form-control" type="text" ng-model="newIssue"></p>
 <button ng-click="AddIssue()"> Add </button>
 </div>

<div ng-controller="tableCtrl">
<table class="table table-striped">
<thead>
  <tr>
    <th>Status</th>
    <th>Issue</th>
    <th>Date</th>
    <th>ID</th>
  </tr>
</thead>
<tbody>
  <tr ng-repeat="issue in issueList">
        <td>{{issue.status}}</td>
        <td>{{issue.issue}}</td>
        <td>{{issue.date}}</td>
        <td>{{issue.id}}</td>
  </tr>
</tbody>
</table>
</div>

我的JS文件controller.js

  var myApp = angular.module('myApp', []);

 // Controller for input
 myApp.controller('inputCtrl', function($scope) {

// Call function when click on AddIssue btn
$scope.AddIssue = function() {

    console.log("Click click....")

    // Use Post to send data to database    
    $http.post('/issueList').sucess( function(response){
       $scope.newIssue = 'New issue';
    })


 }

}); // End of input

server.js

 /* Connect to db issues */
 mongoose.Promise = global.Promise;
 mongoose.connect('mongodb://localhost/issues');

 var db = mongoose.connection;
 db.on('error', console.error.bind(console, 'connection error:'));

/* Connect to MongoDB */
db.once('open', function (callback) {
console.log("Connected to db");

// Created b-schema
issueSchema = mongoose.Schema({
    id: String,
    issue: String,
    date: String,
    status: String
});

// Create Model
Issue = mongoose.model('Issue', issueSchema );

到目前为止,我已经来了,现在我首先需要帮助,首先如何将数据从controller.js发送到server.js

第二个使用猫鼬将它存储在我的mongodb问题上

1 个答案:

答案 0 :(得分:0)

您需要在server.js中为POST定义路由,在其中您可以将问题对象保存在mongodb中。

类似的东西:

//addIssue
    app.post('/addIssue', function(request, response) {
        var issue = new Issue({
            id: request.body.id,
            issue: request.body.issue,
            date: request.body.date,
            status: request.body.status
        });

        return issue.save(function(err) {
           if(!err) {
               return response.send(issue);
           } else {
               console.log("ERROR adding issue:" + err);
           }
        });
    });

您还需要安装一些npm软件包。例如:

  
      
  • body-parser(npm install body-parser)
  •   
  • express(npm install express)
  •   

您还需要使用以下命令在server.js文件中导入它们:

var express =  require('express');
var bodyParser = require ('body-parser');

这只是澄清这个想法的一个例子。在生产环境中,情况有所不同。

看看: https://scotch.io/tutorials/setting-up-a-mean-stack-single-page-application

相关问题