首页 > 解决方案 > 如何在 express.js 中从表单发布数据?

问题描述

我正在尝试快速制作用户注册路由器。后端似乎工作正常,因为我使用邮递员对其进行了验证。但是,当我尝试将前端添加到它(添加表单)时,我收到一条错误消息, {"errors":[{"location":"body","param":"name","msg":"Name is required"},{"location":"body","param":"email","msg":"Please include a valid email"},{"location":"body","param":"password","msg":" Please enter a password with 6 or more characters"}]}因为我name在每个输入标签中都包含了属性,所以我无法弄清楚问题出在哪里。

这是我的代码的一部分。

服务器.js

app.use('/api/posts', require('./routes/api/posts'));

用户.js

router.post(
  '/',
  [
    check('name', 'Name is required')
      .not()
      .isEmpty(),
    check('email', 'Please include a valid email').isEmail(),
    check(
      'password',
      ' Please enter a password with 6 or more characters'
    ).isLength({ min: 6 })
  ],
  async (req, res) => {
    const errors = validationResult(req);
    if (!errors.isEmpty()) {
      return res.status(400).json({
        errors: errors.array()
      });
    }
.
.
.

register.handlebars

<form class="form" action="/api/users" method="post">
                <div class="form-group">
                    <input name="name" type="text" placeholder="Name" requried>
                </div>

                <div class="form-group">
                    <input name="email" type="email" placeholder="E-mail">
                </div>

                <div class="form-group">
                    <input name="password" type="text" placeholder="Password" minlength="6">
                </div>
                <input type="submit" value="Create account" class="button green-button" />
            </form>ss

标签: node.jsexpress

解决方案


使用带有 express 的 body-parser 中间件

https://expressjs.com/en/resources/middleware/body-parser.html


推荐阅读