【发布时间】:2022-01-01 01:59:04
【问题描述】:
我正在尝试更改当前登录用户的电子邮件。
基本上我有一个输入“新”电子邮件(组件代码)的字段:
const [email, setEmail] = useState("");
.........
<input type="email" placeholder={user.email} onChange={(e) => setEmail(e.target.value)}/>
我在组件中的 axios post 请求:
const changeEmail = async () => {
try {
const res = await axios.post("/auth/change/", {
email: email
}, {
headers: {
token:
"Bearer "+JSON.parse(localStorage.getItem("user")).accessToken,
},
}).then(r => console.log(r)).catch(err => console.log(err))
} catch (err) {
console.log(err);
}
};
我目前的server/routes/auth.js:
router.post("/change", verify , async (req, res) => {
if(req.body.email === '' || !(req.body.email.match(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/g))){
res.status(400).json("Email not valid")
}
try {
User.findOne({
where: {
email: JSON.parse(localStorage.getItem("user")).email
},
}).then((user) => {
if(user === null) {
console.log("email not in db")
res.status(403).json("Email not valid")
} else {
; user.update({
email : req.body.email
})
}
})
} catch (err) {
console.log(err)
res.status(500).json(err);
}
});
我的想法是在数据库中搜索 locale.storage 电子邮件,如果找到,则使用在 useState 中设置的电子邮件更新用户。但显然语言环境存储在 api 中不可用。有没有办法将新旧邮件发送到 api 中的 post request 中?
【问题讨论】:
标签: reactjs post axios request