Javascript 无法执行get请求方法,因为数据显示[object]
我正在尝试在Vue和Express中使用get-request方法来获取基于我的v-model的数据 下面是我尝试向express发送数据的代码Javascript 无法执行get请求方法,因为数据显示[object],javascript,express,vue.js,vuejs2,Javascript,Express,Vue.js,Vuejs2,我正在尝试在Vue和Express中使用get-request方法来获取基于我的v-model的数据 下面是我尝试向express发送数据的代码 getResult() { axios .get( `${process.env.VUE_APP_API}/hospita/result/` + { hosp_name: "SAMPLE" } ) .then(res => console.log(res.
getResult() {
axios
.get(
`${process.env.VUE_APP_API}/hospita/result/` +
{
hosp_name: "SAMPLE"
}
)
.then(res => console.log(res.data))
.catch(err => console.log(err));
}
下面是我的get请求方法,它接收来自vuejs的数据
router.get('/result/', (req, res) => {
const sql = "SELECT * FROM \
ND_HOSP WHERE hosp_ptype = 'h' AND hosp_name LIKE ?";
console.log(req.body)
myDB.query(sql, ['%' + req.body.hosp_name + '%'], (err, result) => {
if (err) {
console.log(err)
} else {
try {
res.send(result);
/* console.log(result) */
} catch (err) {
res.send(err)
}
}
})
})
但它给了我错误,并说
问题在这里:res.send(result)
结果不包含json数据,它包含任何其他对象或类似{}的空白对象
因此,首先尝试使用console.log()查看结果中的内容
大多数情况下,这两个函数对于此类情况非常有用
JSON.stringify(object);
JSON.parse(strobj);
在getResult()
中,让我们将方法更改为post
,将+
更改为,
以在正文中传递数据。您可以在下面查看此代码:
getResult(){
axios
.post(//console.log(res.data))
.catch(err=>console.log(err));
}
之后,不要忘记将路由器的方法
从get
更改为post
。您可以在下面查看此代码:
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
//将“get”方法更改为“post”`
router.post(“/result/”,(req,res)=>{
const sql=“从中选择*\
ND_HOSP,其中HOSP_ptype='h'和HOSP_name LIKE?”;
控制台日志(请求正文)
myDB.query(sql,['%'+req.body.hosp_name+'%'],(错误,结果)=>{
如果(错误){
res.send(err)
}否则{
res.send(结果);
}
})
})
确保,因为我们使用的是req.body
,所以不要忘记在server.js
或app.js
中添加body解析器。下面的代码如下所示:
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
我希望它能帮助您。您不能将对象连接到字符串。您需要在请求正文中发送对象,而不是URL。