我应该验证 API 或 BL 层中的输入吗?
Should I validate input in API or BL layer?
我有一个带有 API、BL 和 DAL 层的 node.js 应用程序,我想验证用户输入。
目前我正在 BL 函数的开头进行验证,因此它兼作用户输入验证器和内部应用程序验证器(来自其他 类 的调用)
我担心这不是好的做法,因为验证可能会在对某些函数的单个 API 调用中发生多次(例如,接受 userId 然后将 userId 发送到其他函数的函数,验证多次相同的值)
您应该使用中间件验证来自对路由的请求的数据:
router
.get('/', validators.users.index, actions.users.index)
如果您愿意,我可以与 Joi
分享其余的验证代码。
我有一个带有 API、BL 和 DAL 层的 node.js 应用程序,我想验证用户输入。
目前我正在 BL 函数的开头进行验证,因此它兼作用户输入验证器和内部应用程序验证器(来自其他 类 的调用)
我担心这不是好的做法,因为验证可能会在对某些函数的单个 API 调用中发生多次(例如,接受 userId 然后将 userId 发送到其他函数的函数,验证多次相同的值)
您应该使用中间件验证来自对路由的请求的数据:
router
.get('/', validators.users.index, actions.users.index)
如果您愿意,我可以与 Joi
分享其余的验证代码。