Node.js+EJS项目网站新建用户后性别字段不显示问题排查
问题根因
表单性别字段的name属性与后端接收字段名不一致:
- 前端form.ejs中性别单选框的
name属性设置为Lytis,提交后对应值挂载在req.body.Lytis下 - 后端controller.js创建用户时读取的是
req.body.gender,未获取到对应值导致数据库中gender字段为空,前端渲染时自然无内容展示 - Postman调用接口时手动传入了
gender字段,因此可以正常存储和展示
修复方案
修改form.ejs中性别单选框的name属性,将两处name="Lytis"替换为name="gender"即可:
<!-- 修改前 --> <input type="radio" id="radio-2" name="Lytis" value="Vyras"> <input type="radio" id="radio-3" name="Lytis" value="Moteris"> <!-- 修改后 --> <input type="radio" id="radio-2" name="gender" value="Vyras"> <input type="radio" id="radio-3" name="gender" value="Moteris">
(可选优化)可以在性别单选框上添加required属性,或者在后端controller层补充gender字段的非空校验,避免用户未选择性别时提交空值。
内容的提问来源于stack exchange,提问作者Sidas Vidūnas
相关产品推荐
相关产品推荐

