我正在尝试使用node.js express和mongoose(MEAN堆栈)在MongoDB中保存一个对象数组。但是,当我在前端为阵列中的每个项目发出http post请求时,它们不会按顺序显示在后端。这是我在前端的内容:
$scope.postThenPost = function() {
$http.post('/collection', $scope.doc).success(function(data){
for (var i = 0; i<$scope.array.length; i++) {
var req_obj = { thing: $scope.array[i] };
$http.post('/collection2', req_obj);
};
};
};
并在后端,快递运行此发布到/ collection2:
exports.create = function(req, res) {
var q = new q(req.body.thing);
q.save(function(err) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.jsonp(q);
};
});
};
我能做些什么来确保数组按顺序进入数据库?提前致谢
答案 0 :(得分:1)
当您准备好要发送的所有数据时,发送$scope.array.length
个HTTP请求是浪费的。
只需将整个数组发布到您的后端,然后您可以使用async
之类的内容将它们保存在后端的循环中以保证订单。