繁体   English   中英

在AngularJS,NodeJS,MongoDB,Mongoose和ExpressJS中以单一表单发布到多个集合

[英]Posting to multiple collections with a single form in AngularJS, NodeJS, MongoDB, Mongoose, and ExpressJS

我希望将一个表单发布到mongo中的两个集合。

HTML的外观

<form>
   ...Field1
   ...Field2
   ...Field3
   ...Field4
</form>

控制器的外观

app.controller.....

   $scope.var = {$scope.fields}.....
   $http post...
      ...Field 1 & Field 2 to Mongo Collection 1
      ...Field 3 & Field 4 to Mongo Collection 2

从本质上来说,不需要2种单独的表格来填充2个集合。 这可能吗?

提前致谢

这完全取决于HTTP请求的服务器端处理。 假设您定义源数据,例如:

var composite = {'col1' :{'field1':value, 'field2':value}, 
'col2' :{'field3':value, 'field4':value}};

您可以编写服务器端函数:

var mongoose = require('mongoose'), Col1 = mongoose.model('Col1'), Col2 = mongoose.model('Col2');

exports.compositeUpdate = function(req, res, next) {
    var template1 = req.body.col1;
    var template2 = req.body.col2;
    // you could also do template1 = new Col1(req.body.col1) and use template1.save()
    var compositeResponse = {};
    Col1.create(template1, function(err, result) {
        // omitting error handling
        compositeResponse.col1 = result;
        Col2.create(template2, function(err, result2) {
            compositeResponse.col2 = result2;
            res.json(compositeResponse);
        });
    });
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM