Express.js+MongoDB开发笔记应用时textarea提交的描述无法更新如何解决
问题根因
字段拼写不一致是导致描述无法更新的核心原因:
- 表单中textarea的
name属性拼写为decription(缺少字母s),你打印的req.body也证实了提交的字段key为decription - 路由更新逻辑中取描述字段时使用的是
req.body.description(正确拼写),但req.body中不存在该key,拿到的值为undefined,MongoDB执行更新时自然不会修改描述字段
修复方案
二选一即可,更推荐方案1:
方案1:修改前端表单字段名(符合命名规范)
将表单中textarea的name、id属性修改为正确拼写:
<textarea name="description" id="description" style="width: 100%;" class="mt-4" placeholder="description">{{note.description}}</textarea>
方案2:修改后端路由取值逻辑
如果不想改动前端代码,直接调整路由中取值的key即可:
const description = req.body.decription;
额外优化建议
你index.js中的配置存在一处错误:app.set(express.urlencoded({ extended: false })); 应该是app.use而不是app.set,你已经配置了bodyParser的urlencoded解析,建议直接删掉这句冗余的错误配置,避免后续出现其他参数解析异常。
内容的提问来源于stack exchange,提问作者Forshank
相关产品推荐
相关产品推荐

