我正在尝试添加一个身份验证表单,用户可以在其中输入其凭据,如果其凭据正确,我想将其重定向到路由。因此,我创建了一个中间件login.js,该中间件呈现哈巴狗模板并在表单提交时发布请求。 post方法有效,但是我没有在req.body
中获得哈巴狗形式的值。我该怎么办?
这是admingLogin.pug
文件
doctype html
html(lang='en')
head
meta(charset='UTF-8')
meta(name='viewport', content='width=device-width, initial-scale=1.0')
meta(http-equiv='X-UA-Compatible', content='ie=edge')
link(rel='icon', href='../client/assets/favicon/login.ico', type='image/x-icon')
link(rel='stylesheet', href='https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.css')
title Admin
body
.ui.middle.aligned.center.aligned.grid
.column
form.ui.large.form(action='/auth' method='post')
.ui.stacked.secondary.segment
.field
.ui.left.icon.input
p Log-in as an admin to create custom links
.field
.ui.left.icon.input
i.user.icon
input(type='text', name='username', placeholder='Username')
.field
.ui.left.icon.input
i.lock.icon
input(type='password', name='password', placeholder='Password')
button(type="submit").ui.fluid.large.teal.submit.button Login
.ui.error.message
style.
body>.grid {
height: 100% !important;
}
.image {
margin-top: -100px !important;
}
.column {
max-width: 450px !important;
margin-left: 55px !important;
margin-right: 55px !important;
}
body {
background: #30E8BF;
background: -webkit-linear-gradient(to right, #FF8235, #30E8BF);
background: linear-gradient(to right, #FF8235, #30E8BF);
}
答案 0 :(得分:1)
来自HTML的POST以application/x-www-form-urlencoded
的形式发送。您需要配置body-parser
来处理这种类型。
当前,根据您添加的代码,它只能处理application/json
。
尝试在app.use(bodyParser.json());
下添加以下行
app.use(bodyParser.urlencoded({ extended: true }));