我花了几个小时寻找一种方法来使这个(或任何东西)使用Browserify,但找不到任何对我的问题有用的教程或示例。几乎所有这些都只显示了如何屏蔽你的代码,但它们都没有显示如何在浏览器化后实际访问代码本身。也许这只是一件如此直截了当的事情,没有人费心去提及它,所以如果这实际上是一个愚蠢的问题我会道歉。
所以,我有这个应用程序实现用户名和密码验证。我使用'validator'npm包和OWASP推荐的密码复杂性包来验证节点中服务器端的输入。根据我对Browserify项目的理解,我应该能够浏览我需要这些软件包的模块,并在客户端加载它们。
我的customValidator.js模块现在看起来像这样:
var validator = require('validator')
var owasp = require('owasp-password-strength-test')
module.exports = {
validator: validator,
owasp: owasp,
containsUsername: function(password, username) {
return (new RegExp(username, 'i')).test(password)
}
}
我也希望在客户端使用这些函数,最好是在AngularJS中,因为我使用Angular根据用户提供的当前(可能无效)输入来操作输入字段。
基本上我想要的是在客户端作为服务器端的对称输入验证,通过访问双方的相同模块,已经为客户端进行浏览化。
我运行了以下命令:
browserify --standalone customValidator.js > clientSideValidator.js
然后在我的jade模板中包含clientSideValidor.js脚本
script(src='clientSideValidator.js')
我试图访问Angular中的函数和jade中的单独脚本,但每个函数总是返回undefined。如何在客户端代码中运行类似'validator.isAlphaNumeric($ scope.username)'的内容?
答案 0 :(得分:2)
您需要为浏览器设置名称以将所有内容导出到。
尝试运行此选项并替换“myModuleName”'用你想要的名字命名
$ browserify customValidator.js --standalone myModuleName > clientSideValidator.js