【发布时间】:2015-09-21 16:54:16
【问题描述】:
我正在使用 MeanJS,用户输入一个对象列表,每个对象都需要创建一个新文档。同时,我需要创建另一个单独的文档,其中包含指向数组中每个对象的指针,并将每个对象也链接回这个新文档。因此,最终结果需要是任意数量的模型“Q”文档,这些文档链接到模型“S”的另一个文档。
我尝试这样做的原因是允许用户创建问题调查。每个问题都是填写调查问卷的自己的对象(作为一个属性,将包含这些问题 ID 的列表)。
S = {"_id": 0, "Qids": [ObjectId("1"), ObjectId("2"), ObjectId("3"), ObjectId("4")]}
Q1 = {"_id": ObjectId("1"), "Sid": ObjectId("0")}
Q2 = {"_id": ObjectId("2"), "Sid": ObjectId("0")}
Q3 = {"_id": ObjectId("3"), "Sid": ObjectId("0")}
Q4 = {"_id": ObjectId("4"), "Sid": ObjectId("0")}
我的问题:如果不遇到某种回调问题,我似乎无法做到这一点。有人可以给我一些建议吗?这就是它现在的样子:
客户端:
$scope.Qlist = [Q1, Q2, Q3, Q4];
$scope.S = {};
$http.post('/S', $scope.S).success(function(data){
var req_obj = {
Sid: data._id,
Q: {}
};
for (var i = 0; i<$scope.Qlist.length; i++) {
req_obj.Q = $scope.Qlist[i];
$http.post('/Q', req_obj);
};
});
服务器端:
app.route('/Q')
.post(users.requiresLogin, questions.hasAuthorization, questions.fillSurvey);
然后我有处理这些功能的服务器端控制器。 questions.fillsurvey 函数将问题添加到 MongoDB,然后获取每个问题的 id 并将它们推送到 Qids 下的 S 文档中。其中大部分工作正常,但是当客户端发送 Q1、Q2、Q3 和 Q4 时,服务器只接收 Q4,四次。
理想情况下,我想在一个帖子请求中一起发送$scope.Qlist 和$scope.S 并让服务器端解决所有问题,但我一直被回调函数所困扰,这就是为什么我'我们选择在客户端通过$scope.Qlist 循环发布帖子。如果有人对此有“最佳实践”解决方案,我将非常感谢您的帮助!
【问题讨论】:
标签: node.js loops post mongoose mean-stack