Sequelzie 提交数据遇到 Incorrect integer value: '' 的解决办法,希望给为老sj解答

发布于 2022-09-11 19:18:02 字数 691 浏览 16 评论 0

问题描述

目前在用egg.js做项目的时候需要这么一个问题,在表单提交的时候如果上传的字段为'',并且这个字段是可空的整型字段,那么就会报错 Incorrect integer value: '' xxxxx 问题的点已经明白是什么意思了,就是运行为空的INT字段,如果插入为空的话就会报这个错误,就算设置了默认值也没用,而且后来测试测试了一下,发现就算插入NULL也是没问题,MYSQL也就直接插入NULL,不会根据默认值去插入。

当然可以在后端做数据校验来解决这个问题,但是也想通过做项目来研究一下。开看看有没有统一,并且一劳永逸的办法

问题出现的环境背景及自己尝试过哪些方法

我自己也尝试写了判断 就是只要POST过来的数据是‘’ 就把数据删掉

clipboard.png

但是感觉这样很low
后来根据可以放到中间件里面和HOOK里面了,最后还是放到了sequelize的钩子里面

clipboard.png

期待的结果是什么?实际看到的错误信息又是什么?

希望各位大神、老司机用egg做过项目的同学们,帮忙想想这个如何解决,非常感谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

彻夜缠绵 2022-09-18 19:18:02

这个问题不应该到 orm 这一层吧。如果一个数字要求是整形,就不应该允许前端传字符串类型过来。
可以考虑在 controller 前面加一层 data schema validate。
可以用的插件有很多,比如 egg-validate / egg-async-validator 等

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文