我有一个axios的get请求,在一个vue项目中用于获取mongodb集合中的一项内容
async created() {
try {
const res = await axios.get(`http://localhost:3002/backend/gettestbyname`, {
name: "user language check numbers in different languages"
})
this.items = res.data;
this.imagesref = res.data[0].refimages;
this.imagestest = res.data[0].testimages;
this.imagesresult = res.data[0].testresults;
for (let i of this.imagesref){
this.expref.push(false);
this.exptest.push(false);
this.expres.push(false);
}
this.loadAPI=true;
} catch (error) {
console.log(error);
}
这是我的API中的GET请求。
gettestbyname:function(req,res){
console.log(req.body.name);
scetest.find({name:req.body.name}).exec(function(err,report){
if(err){
res.json({message:'error',status:500,data:null})
}
else{
res.json({message:'report in system',status:200,data:report})
}
})
}
当我在Postman中使用原始JSON数据示例测试请求时:{"name": "item的名称"},我可以得到该项,但在我的应用程序中我却得到了一个空的数据数组。我认为我在向axios请求中添加参数的方式上出了一些问题。
编辑经过一些调试,我注意到我的应用程序中get请求被执行了两次。第一次执行给了我正确的结果并且req.body.name作为参数被传递,第二次执行只是执行了没有参数的get请求。我相信我的应用程序仅保存了最后一个请求。这是我在请求中使用console.log记录下来的req.body和结果。
{ name: 'user language check numbers in different languages' }
[
{
_id: new ObjectId("624c181587bdfbab1ee80cda"),
name: 'user language check numbers in different languages',
tag: '@DHRD-52484',
status: 'skipped/pending',
refimages: [],
testimages: [],
testresults: [],
__v: 0
}
]
{}
[]