【发布时间】:2023-03-27 20:07:01
【问题描述】:
我正在使用 async/await 语法在 React.js 中使用 axios 进行发布请求。该请求只是将新用户插入到 mysql 数据库中的表中。请求正在通过并且正在插入数据,但是,我的 POST 请求处于待处理状态。
这是react中的前端代码:
export const register = (first_name, last_name, email, password) => async (
dispatch
) => {
try {
dispatch({
type: USER_REGISTER_REQUEST,
});
const user = {
first_name,
last_name,
email,
password,
};
const { data } = await axios.post("api/users/insertdata", user);
dispatch({
type: USER_REGISTER_SUCCESS,
payload: data,
});
dispatch({
type: USER_LOGIN_SUCCESS,
payload: data,
});
localStorage.setItem("userInfo", JSON.stringify(data));
} catch (error) {
dispatch({
type: USER_REGISTER_FAIL,
payload:
error.response && error.response.data.message
? error.response.data.message
: error.message,
});
}
};
这里是 node.js 和 express 的后端代码:
router.post("/insertdata", (req, res) => {
const { first_name, last_name, email, password } = req.body.first_name;
let sql = `INSERT INTO users (first_name, last_name, email, password) VALUES (?,?,?,?);`;
connection.query(
sql,
[first_name, last_name, email, password],
(err, result) => {
if (err) {
console.log(err);
} else {
res.status(201);
console.log("insert complete");
}
}
);
});
【问题讨论】:
-
嗨 Keegan,在您发布的代码中,PUT 实现在哪里?我只能看到 POST 实现,根据您的评论,它运行良好。
-
你好 Firmino,因为这个函数的目标只是创建一个新用户而不是更新现有用户的一部分,我正在使用 POST 请求。
-
我也忘了提及如果我删除了 async/await 语法并使用 .then 和 .catch,它可以完美运行。
-
export const register = async (first_name, last_name, email, password) = (dispatch) => {}是否有错误??? @KeeganAdams
标签: node.js reactjs express async-await axios