node.js - 验证节点的中间件
问题描述
在我的节点应用程序中,我有以下快速路线。
router.post('/register', asyncMiddleware(async (req, res) => {
const { error } = validateUser(req.body);
if (error)
return res.status(400).send(error.details[0].message);
const { token, user } = await userService.createNewUser(req.body);
res.header('x-authorization-token', token).send(_.pick(user, ['_id', 'name', 'email']));
}));
处理这样的验证结果是一种好习惯吗?或者我应该将它放入中间件并使用它?如果是这样,我怎样才能将它放入中间件并使用它?
解决方案
处理这样的验证结果是一种好习惯吗?
答案是视情况而定。
如果它是一个小项目,或者只有几个 API,或者您只需要验证这条路线,那么您可能可以通过这样的验证来解决问题。
但是,在更大的项目中,您绝对应该有一个单独的验证中间件。
我个人喜欢使用express-validation和Joi进行验证。
Joi 非常适合创建灵活而强大的模式来验证传入的请求。和 express-validation 照顾适当的状态和身体。
如果您想查看这方面的示例,请查看我的express-api-structure。
推荐阅读
- java - 防止我的设备在我的设备被锁定时关闭
- redux - 减速器中的流型故障?
- python - 我应该在我的包中包含非 Python 文件吗?
- typescript - Typescript - 如何导入与命名空间同名的声明函数
- azure-devops - Azure DevOps - 部署池位于网络防火墙后面的本地代理
- regex - 正则表达式与 Scala 代码中的字符串不匹配
- java - 我使用 setVisible(true) 但不会出现 Java Swing Window
- android - 自定义 Android 对讲/辅助功能手势
- extjs - Extjs如何获取文本区域中的光标位置
- c++ - 在c ++中生成字符串映射到std :: list of pointers