node.js - 如何在 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
解决方案
使用带有 express 的 body-parser 中间件
https://expressjs.com/en/resources/middleware/body-parser.html
推荐阅读
- php - 如果列数不同,如何使用 UNION 和 Zend DB
- angular - 在特定索引处将 FormGroup 设置为 FormArray
- apple-music - Apple Music 用户令牌会过期吗?
- javascript - 使用 JQuery 排序功能对 DOM 元素进行排序时丢失单击
- c# - 异步函数返回异步元数据(包括结果)而不仅仅是结果
- android - 由 kotlin.TypeCastException 引起的 null 不能转换为非 null 类型 com.drivequant.drivekit.tripanalysis.entity.PostGenericResponse
- bitbucket - bitbucket中的存储库设置?
- size - Netlogo gis 扩展:如何设置世界大小以给补丁提供特定的比例
- java - 从spring boot中的子模块访问主应用的Property文件(application.yml)
- azure - 使用什么来路由 Azure 中的数千个子域?