【发布时间】:2021-12-31 16:12:34
【问题描述】:
我正在尝试使用 react Axios 检索 Mysql 中新插入的行的 Id 值。
这是我在 node.js 中的代码
app.post('/createProject', (req,res) => {
const projectName = req.body.projectName;
const tjm = req.body.tjm;
const status = req.body.status;
db.query("INSERT INTO projects (projectName, tjm, status) VALUES (?,?,?)",
[projectName, tjm, status],
(err, result) => {
if (err) {
console.log(err);
} else {
res.send("Values Inserted");
res.send(result.insertId);
console.log(result.insertId);
}
}
);
});
我尝试使用 UseState 钩子获取 insertId;在另一个 Post 请求中使用它并将它存储在另一个表中。
react 中的 post 请求:
const [id, setId] = useState();
const addProject = () => {
Axios.post("http://localhost:3001/createProject", {
projectName: projectName,
tjm: tjm,
status: "Inachevé"//Uncomplete,
}).then((res) => {
console.log("success");
setId(res.data);
});
};
我尝试console.log(id),但在控制台中未定义。
获取项目Inserted Id的post请求:
const addWork = () => {
Axios.post("http://localhost:3001/createWork", {
EmpID: id_e,//I get that Id from a drop-down list
PrID: id_p,// the Id of the Inserted project who I can't get
}).then(() => {
console.log("success");
});
};
当我在前端填写我的输入并发送数据(prjectName、tjm 和状态)时,数据被正常存储,insertId 在后端得到控制台但我无法得到它在我的客户端。
创建新项目时如何在前端访问insertId并将其存储在另一个表中?
注意:我认为我应该使用async/await 让addWork 函数等到addProject 执行,但问题是如何让 insertId 进入前端。
【问题讨论】:
标签: mysql node.js reactjs express