Node Express 无法弄清楚如何更新用户详细信息
Node Express can't figure out how to update user details
好的,一旦用户登录,我就会将他们的详细信息存储在 req.user 中。然后,用户应该能够在使用 /profile 路由呈现的表单中编辑他们的详细信息(名字、姓氏、电子邮件),如下所示:
app.get('/profile', checkAuthenticated, (req, res) => {
res.render('profile.ejs', req.user);
})
表格如下:
<form class="form__inputs" action="/update-profile" method="post">
<div class="form__input">
<input id="firstname" name="firstname" type="text" value="<%=firstname%>" required />
<label for="firstname">Firstname</label>
</div>
<div class="form__input">
<input id="lastname" name="lastname" type="text" value="<%=lastname%>" required />
<label for="lastname">Lastname</label>
</div>
<div class="form__input form__email">
<input id="email" name="email" type="email" value="<%=email%>" required />
<label for="email">Email</label>
</div>
<button class="form__button" type="submit">Update</button>
</form>
提交表单后,我希望用户被重定向到 /update-profile 路由,在那里我可以对数据库执行更新 (MySQL)。
app.put('/update-profile', (req, res) => {
console.log(req.params)
console.log(req.body)
res.redirect('/')
})
但是我收到“无法 POST /update-profile”错误。
我正打算使用存储在 req.user 中的 user_id 和存储在 req.body.params 中的新用户数据(名字、姓氏、电子邮件)来更新数据库,但是我我的路线显然有点混乱。
任何帮助将不胜感激,非常感谢您抽出宝贵时间!
您似乎正在收听 Express 应用中的 PUT 请求,但发送的是 POST。
app.post('/update-profile', (req, res) => {
console.log(req.params)
console.log(req.body)
res.redirect('/')
});
如果您将代码更改为此,它应该可以工作。
好的,一旦用户登录,我就会将他们的详细信息存储在 req.user 中。然后,用户应该能够在使用 /profile 路由呈现的表单中编辑他们的详细信息(名字、姓氏、电子邮件),如下所示:
app.get('/profile', checkAuthenticated, (req, res) => {
res.render('profile.ejs', req.user);
})
表格如下:
<form class="form__inputs" action="/update-profile" method="post">
<div class="form__input">
<input id="firstname" name="firstname" type="text" value="<%=firstname%>" required />
<label for="firstname">Firstname</label>
</div>
<div class="form__input">
<input id="lastname" name="lastname" type="text" value="<%=lastname%>" required />
<label for="lastname">Lastname</label>
</div>
<div class="form__input form__email">
<input id="email" name="email" type="email" value="<%=email%>" required />
<label for="email">Email</label>
</div>
<button class="form__button" type="submit">Update</button>
</form>
提交表单后,我希望用户被重定向到 /update-profile 路由,在那里我可以对数据库执行更新 (MySQL)。
app.put('/update-profile', (req, res) => {
console.log(req.params)
console.log(req.body)
res.redirect('/')
})
但是我收到“无法 POST /update-profile”错误。
我正打算使用存储在 req.user 中的 user_id 和存储在 req.body.params 中的新用户数据(名字、姓氏、电子邮件)来更新数据库,但是我我的路线显然有点混乱。
任何帮助将不胜感激,非常感谢您抽出宝贵时间!
您似乎正在收听 Express 应用中的 PUT 请求,但发送的是 POST。
app.post('/update-profile', (req, res) => {
console.log(req.params)
console.log(req.body)
res.redirect('/')
});
如果您将代码更改为此,它应该可以工作。