使用 axios 库通过获取请求将数据从反应发送到节点
Sending data from react to node by get request using axios library
我处理了一个问题超过 3 个小时,我想做的是使用 axios 库从 react 向 nodejs 发送一个获取请求,我想将一些数据传递到这个请求中,正如我们所知get 请求没有正文,所以我将数据作为查询参数发送,就像那样
// base URL
const url = "http://localhost:8080/loginAsTeacher";
if(loginAs === "loginTeacher"){
axios.get(url,{
params :{
email: "abc123@gmail.com",
password: "abc1234*"
}
})
.then(res => console.log(res)) // this line return status:200 and data:null
.catch(err => console.log(err.message))
}
所以这个请求成功了,但问题是电子邮件和密码没有传递到后端
router.get("/loginAsTeacher", async (req,res)=>{
// values coming from the client
const loginEmail = req.params.email;
const loginPassword = req.params.password;
console.log(req.params); // this line return {} empty object
// get data of that user by his/her mail
const teacherData = await myModel.findOne({
email: loginEmail
}).exec()
res.status(200).json({
status: 200,
data: teacherData
})
})
上面的console.logreturn是一个空对象,也就是说没有参数
这不是正确的解决方案吗???
感谢阅读
要获取您的查询,您需要获取 req.query 而不是 req.params
顺便说一句。通过 get 发送敏感数据是危险的。它甚至可以通过 https
以明文形式登录
使用 req.query 而不是 req.params。它将解决问题
我处理了一个问题超过 3 个小时,我想做的是使用 axios 库从 react 向 nodejs 发送一个获取请求,我想将一些数据传递到这个请求中,正如我们所知get 请求没有正文,所以我将数据作为查询参数发送,就像那样
// base URL
const url = "http://localhost:8080/loginAsTeacher";
if(loginAs === "loginTeacher"){
axios.get(url,{
params :{
email: "abc123@gmail.com",
password: "abc1234*"
}
})
.then(res => console.log(res)) // this line return status:200 and data:null
.catch(err => console.log(err.message))
}
所以这个请求成功了,但问题是电子邮件和密码没有传递到后端
router.get("/loginAsTeacher", async (req,res)=>{
// values coming from the client
const loginEmail = req.params.email;
const loginPassword = req.params.password;
console.log(req.params); // this line return {} empty object
// get data of that user by his/her mail
const teacherData = await myModel.findOne({
email: loginEmail
}).exec()
res.status(200).json({
status: 200,
data: teacherData
})
})
上面的console.logreturn是一个空对象,也就是说没有参数
这不是正确的解决方案吗???
感谢阅读
要获取您的查询,您需要获取 req.query 而不是 req.params
顺便说一句。通过 get 发送敏感数据是危险的。它甚至可以通过 https
以明文形式登录使用 req.query 而不是 req.params。它将解决问题