无法从NodeJ中的PugJS表单获取数据

时间:2020-03-09 13:03:33

标签: node.js forms express pug

我正在尝试添加一个身份验证表单,用户可以在其中输入其凭据,如果其凭据正确,我想将其重定向到路由。因此,我创建了一个中间件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);
      }

这是整个项目的link,路线的链接是here。中间件已通过here

1 个答案:

答案 0 :(得分:1)

来自HTML的POST以application/x-www-form-urlencoded的形式发送。您需要配置body-parser来处理这种类型。

当前,根据您添加的代码,它只能处理application/json

尝试在app.use(bodyParser.json());下添加以下行

app.use(bodyParser.urlencoded({ extended: true }));