假设我正在使用存储库模式进行数据访问,如下所示:
#userController.coffee
# `userId` is obtained from the session
user =
email: 'Bob'
password: 'Secret'
db.userRepo(@userId).create user, (err, data) =>
# return results in http response or socket.io
这是在此方法调用期间可能出错的地方:
user
有验证错误,例如缺少字段等。user.email
。回调参数的选项:
(err, data)
- 其中err
是遇到的所有错误的数组。(err, data)
- 其中err
是验证错误,数据库错误被抛出为异常。(err, data)
- 与上述相同,除非user
已存在,否则返回null,因为这不是错误,而是预期的行为。(err, data, validation)
- 其中validation
是一系列验证错误或null
。(err, data, model)
- 返回带有验证属性的模型类 - 活动记录样式。随意提出不同的建议。
我打算使用node-validator和revalidator的组合来验证对象和参数。
背景故事:由于社区规模较大,网络套接字支持良好以及开发人员的工作效率,我刚刚从Scala / Play迁移到Node / Express。在开始使用Sequelize ORM后,我认为它太过限制,无法创建连接,我的架构很简单,所以我开始编写原始SQL。在最初的开发速度提升之后,我发现自己每天都想要静态打字。我写的测试和验证代码的数量要大得多。
答案 0 :(得分:0)
我建议使用(err, data, validation)
,以便您可以轻松检查用户需要重新输入的无效输入,以及实际数据库错误err
,这可能会在编写详细信息时打印出错误消息测试过程中的日志文件原型设计。