我计划创建一个具有 Hapi.js/strongloop 后端和 angularjs 前端的应用程序。
由于这两个 BE 框架都有某种模型验证(Hapi 的 Joi 和 Strongloop 自己的验证),我认为在前端使用这些验证模式会很棒。
这可能吗?如果是,如何将 joi/strongloop 验证库迁移到客户端?
修复了什么:我们将使用 AngularJS 作为前端。
我们拥有:Joi 中定义的数据验证 shemas。
我想做的:使用 AngularJS 中的相同模式(无需调用服务器上的实际方法)
目前我们需要调用一个REST方法(例如Create方法)来使用joi验证表单数据(或者编写两次相同的验证)。 我们希望更改此设置,以便前端可以在不联系服务器的情况下验证表单数据。
有没有办法在 AngularJS 中使用 joi NodeJS 库? 如果不可能的话还有其他解决办法吗?
最佳答案
我没有使用过 Strongloop,所以我的评论仅限于 Joi。
Joi 不是为客户端使用而构建的。即使您将所有代码都放在那里,它甚至不会运行客户端。查看lib/index.js :
var Hoek = require('hoek');
var Any = require('./any');
...
var internals = {
alternatives: require('./alternatives'),
array: require('./array'),
...
};
所有这些 require
语句都必须重写,才能在客户端上运行。
Joi 还具有一些您可能想要或可能不想包含的外部依赖项。您可以看一下package.json :
"dependencies": {
"hoek": "^2.2.x",
"topo": "1.x.x",
"isemail": "1.x.x",
"moment": "2.x.x"
},
所以,不,如果不努力,Joi 将无法在客户端工作。
关于angularjs - 如何在 Angular 中执行 Hapi.js/Strongloop 验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28316470/