【问题标题】:Saving a matrix into a MongoDB database将矩阵保存到 MongoDB 数据库中
【发布时间】:2015-08-19 21:30:46
【问题描述】:
var app = angular.module('app', []);
app.controller('MainCtrl', function($scope) {

       // var Answer = require("mongoose");

        $scope.circles = [
             JSON.parse("{\"x\": 85, \"y\": 20, \"r\":15}"),
             /* much more similar entries */
        ];


);
angular.bootstrap(document.getElementById('body'), ["app"]);

我的问题很简单:

我有一个非常简单的 SPA 的 AngularJS 代码。

如何将数组圆保存在服务器端(数据库内部),或者更具体地说,如何编写允许我执行此操作的服务器控制器?

【问题讨论】:

  • 你想如何使用存储的数据?您是在问文档应该如何存储?或者您是在问如何编写代码以将文档存储在数据库中?
  • 使用$http将其发送到服务器。您已多次被告知数据库交互仅在服务器上完成
  • @BlakesSeven 我想使用第二页上的数据,使用类似路线或类似的东西,以便人们可以更改它并将其保存到数据库中。所以我在问如何从这一点编写代码以将文档存储在数据库中。
  • @charlietfl 我知道 Node、Express、Mongoose 和 MongoDB 都存在于服务器上,而 Angular 存在于浏览器中。我已经明白了。我的技术难题是如何使用 $http 将其发送到服务器,因为我以前从未做过类似的事情,而且我发现的所有代码都很难理解
  • 好的。我们之前已经讨论过这个问题,但你仍然没有明白这一点。在这里,您有一小块角代码和一些要存储的数据的小表示。但是询问如何编写控制器来接收它以及如何将它存储在 MongoDB 中,而完全没有解释您要如何读取或查询或以其他方式使用该数据是一个太宽泛的问题。正如我之前所说。 1.问一个关于编写服务器控制器的问题,“因为它是自己的问题”,带有适当的标签(不是角度,不是MongoDB)。 2.想想MongoDB的位子,再写一个问题

标签: angularjs node.js


【解决方案1】:

嗯,关于 cmets 的后续讨论,这是否是编写控制器以向服务器发送数据的可行方法:

var dbtest = angular.module('dbtest',[]);
var app = angular.module('app', ['dbmodule']);

app.controller('MainCtrl', function($scope) {

       // var Answer = require("mongoose");

        $scope.circles = [
             JSON.parse("{\"x\": 85, \"y\": 20, \"r\":15}"),
             /* much more similar entries */
        ];



);

dbtest.controller("dbtest",function($http) {
    var app = this;
    //var url=...
    app.SaveAnswer = function (newAnswer) {
        $http.post(url+"/add", {circle:$scope.circles}).success(function () {
            console.log("Success");
        })
    };

angular.bootstrap(document.getElementById('body'), ["app"]);
//maybe another bootstrap is needed... angular.bootstrap(document.getElementById('dbtest'), ["dbtest"]);

然后对于服务器端的 POST 方法,server.js 文件,我会添加如下内容:

var express = require("express");
var app = express();
var cors = require("cors");
var bodyParser=require("body-parser");
app.use(cors());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
    extended: true
}));

var Answer = require('../db/db_model');

app.post("/add", function(req, res){
    var resp = req.circles;
    var answer = new Answer({ans: resp});
    answer.save(function(err){
        if(err){
            console.log("Error");
        }
        else{
            console.log("Saved");}
    });
});

//Change this in deployment to port.env or similar
app.listen(3000, function () {
    console.log("Port 3000 connected");
});

这些方面是否正确?然后我可以在 HTML 上使用 dbtest 控制器,这样当用户单击按钮时,矩阵就会保存到数据库中,对吧?

【讨论】:

    猜你喜欢
    • 2021-12-15
    • 2011-08-17
    • 2014-06-16
    • 1970-01-01
    • 2012-06-07
    • 2015-10-18
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多