Node.js 我应该在API或BL层中验证输入吗?

Node.js 我应该在API或BL层中验证输入吗?,node.js,validation,user-input,jsonschema,Node.js,Validation,User Input,Jsonschema,我有一个带有API、BL和DAL层的node.js应用程序,我想验证用户输入 目前,我正在BL函数的开头进行验证,因此它兼作用户输入验证程序和内部应用程序验证程序(来自其他类的调用) 我担心这不是一个好的做法,因为验证可能会在某些函数的单个API调用上发生多次(例如,一个函数接受userId,然后将userId发送给其他函数,多次验证相同的值)当数据来自使用中间件的路由请求时,您应该验证数据: router .get('/', validators.users.index, actions.

我有一个带有API、BL和DAL层的node.js应用程序,我想验证用户输入

目前,我正在BL函数的开头进行验证,因此它兼作用户输入验证程序和内部应用程序验证程序(来自其他类的调用)


我担心这不是一个好的做法,因为验证可能会在某些函数的单个API调用上发生多次(例如,一个函数接受userId,然后将userId发送给其他函数,多次验证相同的值)

当数据来自使用中间件的路由请求时,您应该验证数据:

router
  .get('/', validators.users.index, actions.users.index)

如果您希望我可以与
Joi

共享验证代码的其余部分,您应该使用中间件验证来自路由请求的数据:

router
  .get('/', validators.users.index, actions.users.index)
如果您愿意,我可以与
Joi
共享验证代码的其余部分