【发布时间】:2019-05-20 15:43:08
【问题描述】:
我正在发送 angularjs 请求并得到响应,有时会出现重复
$http.post('/project_inspection_list',{project_id:$scope.projectid}).then(function(response){
if(response){
if(response.data.status =="success"){
setTimeout(() => {
$scope.inspectionlist = response.data.inspection_list
console.log($scope.inspectionlist)
$scope.page_loader = false;
}, 1);
}
}
})
正确答案:
[{
inspection_id: "000000009664ea3b2c3131c2",
inspection_name: "Sample",
field_user_name: "Radisson Blue Marina",
published_date_org: "2018-12-18T09:23:59.403Z",
published_date: "2018-12-18T09:23:59.403Z"
}
{
inspection_id: "000000009664ea3b2c3131cb",
inspection_name: "Sample 2",
field_user_name: "Radisson Blue Marina",
published_date_org: "2018-12-18T09:25:10.156Z",
published_date: "2018-12-18T09:25:10.156Z"
}
{
inspection_id: "000000009664ea3b2c3131d0",
inspection_name: "Sample 3",
field_user_name: "Radisson Blue Marina",
published_date_org: "2018-12-18T09:30:02.730Z",
published_date: "2018-12-18T09:30:02.730Z"
}]
有时会收到如下响应:
[{
inspection_id: "000000009664ea3b2c3131c2",
inspection_name: "Sample",
field_user_name: "Radisson Blue Marina",
published_date_org: "2018-12-18T09:23:59.403Z",
published_date: "2018-12-18T09:23:59.403Z"
}
{
inspection_id: "000000009664ea3b2c3131d0",
inspection_name: "Sample 3",
field_user_name: "Radisson Blue Marina",
published_date_org: "2018-12-18T09:30:02.730Z",
published_date: "2018-12-18T09:30:02.730Z"
}
{
inspection_id: "000000009664ea3b2c3131d0",
inspection_name: "Sample 3",
field_user_name: "Radisson Blue Marina",
published_date_org: "2018-12-18T09:30:02.730Z",
published_date: "2018-12-18T09:30:02.730Z"
}]
节点代码:
app.post('/project_inspection_list', async function (req, res) {
var id = req.body.project_id;
try{
var response = await mongo.inspection.findOne({'projectID':id})
}
catch(err){
return res.json({status:"failure"})
}
var inspection = [];
if(response){
var data = response.inspection_data;
for ( var i = 0; i<data.length; i++){
var item = data[i]
var fielduser = item.userID
// var user =
// if(item.published == "Y"){
try{
var client = await mongo.user.findOne({'_id': mongoose.Types.ObjectId(response.clientID)});
}
catch(err){
res.json({status:"failure"})
}
if(client){
await mongo.fielduser.findOne({'_id': mongoose.Types.ObjectId(fielduser)},function(err,user){
if(err){
res.json({status:"failure"})
}
else{
var domain_path = url_path.format({ protocol: req.protocol,host: req.get('host')});
var path ;
if(item.pdf){
path = domain_path+"/uploads/docs/"+client.owner_name+'/inspection/pdf/'+item.pdf;
}
inspection.push({
inspection_id:item._id,
inspection_name:item.insName,
field_user_name : user.owner_name,
published_date_org:item.published_date_org,
published_date:item.published_date,
path : path,
published : item.published,
created_date : item.created_date,
submissionTime : item.submissionTime
});
// });
}
})
}
else{
res.json({status:"failure"})
}
// }
}
console.log(inspection)
res.json({status:"success","inspection_list":inspection})
}
else{
res.json({status:"success","inspection_list":inspection})
}
});
实际上我有检查名称样本、样本 2 和样本 3,有时我得到错误的响应样本、样本 3、样本 3 - 我得到样本 3 两次而不是样本 2。我使用了 setTimeout,即使我得到了错误的响应有时
【问题讨论】:
-
如果用 Postman 完成,你看到了吗?... 或 jQuery?
-
节点本身出现重复
-
节点从哪里读取这个?
-
来自 db - 我正在使用 Mongodb
-
假设inspection_id 是唯一的......你能分享你正在使用的mongoDb fetch 语句,它可能会加入结果......