【发布时间】:2022-01-19 22:42:31
【问题描述】:
我有两个页面,注册和status。从注册页面,我提交了一个表单,当我收到响应时,我想将它发送到状态页面并访问对象的一些属性。
const register = (e) => {
e.preventDefault();
Axios.post("http://localhost:3001/register", {
name : name,
NID : NID,
birth : birth,
phone : phone,
gender : gender,
center : center,
address : address
}).then((response) => {
console.log(response.data);
setResponse(response.data.NID);
});
e.target.reset();
};
在 MySQL 数据库中每次 post 请求都成功。但是当我控制台记录 response.data 时,我没有得到数据属性。
后端:
app.post("/register", (req, res) => {
const name = req.body.name;
const NID = req.body.NID;
const birth = req.body.birth;
const phone = req.body.phone;
const gender = req.body.gender;
const center = req.body.center;
const address = req.body.address;
db.query(
"insert into register (name, NID, birth, phone, gender, center, address) values (?,?,?,?,?,?,?)",
[name, NID, birth, phone, gender, center, address],
(err, result) => {
if (err) {
res.send(err);
} else {
res.send(result);
}
}
);
});
另外,在渲染 {response.data.name} 时出现错误。
【问题讨论】:
-
这是一个跑题的评论,但是如果您 1) 在客户端上执行 axios 请求时,您可以使代码更简洁:
Axios.post("http://localhost:3001/register", { name, NID, etc.-- 如果属性名称相同作为变量,您可以使用速记符号——没有理由像name: name那样重复。 2)在服务器代码中可以使用对象解构:const { name, NID, etc. } = req.body; -
非常感谢您告诉我。
标签: node.js reactjs rest console.log