javascript - 如何在 Angular Controller 中使用 Browserified npm 包?

标签 javascript angularjs node.js pug browserify

我花了几个小时寻找一种方法来让这个(或任何东西)与 Browserify 一起工作,但找不到任何对我的问题有用的教程或示例。几乎所有这些都只展示了如何混淆代码,但没有一个展示如何在浏览器化后实际访问代码本身。也许这只是一些简单的事情,没有人愿意提及它,所以如果这实际上是一个愚蠢的问题,我很抱歉。

所以,我有这个实现用户名和密码验证的应用程序。我将“validator”npm 包与 OWASP 推荐的密码复杂性包结合使用,以验证 Node 中服务器端的输入。根据我对 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

然后将 clientSideValidor.js 脚本包含在我的 Jade 模板中

  script(src='clientSideValidator.js')

我尝试访问 Angular 和 jade 本身内的单独脚本中的函数,但每个函数总是返回未定义。如何在客户端代码中运行“validator.isAlphaNumeric($scope.username)”之类的内容?

最佳答案

您需要为 browserify 指定一个名称以将所有内容导出到。

尝试运行此命令并将“myModuleName”替换为您想要的名称

$ browserify customValidator.js --standalone myModuleName > clientSideValidator.js

关于javascript - 如何在 Angular Controller 中使用 Browserified npm 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35616492/

相关文章:

angularjs - 如何将自定义 AngularJS 指令添加到 Netbeans 7.4 IDE 中的 html 验证器?

javascript - Mocha 的 before() 函数在 CircleCI 中使用时失败

javascript - 从 Express 错误处理中间件而不是 HTML 返回 JSON

javascript - 使用 reangular 计算冗余

javascript - ReactJS: "TypeError: Object(...)(...) is undefined"

javascript - 如何调用数组

node.js - npm 错误!版本未找到 : i@0. 3.2 错误

javascript - 当我将鼠标悬停在图像上时,我需要使用 JavaScript 更改图像的不透明度值,但我的代码无法正常工作

javascript - Angular 指令,未读取参数且 console.log 不起作用

angularjs - 使用 AngularJS 进行分页?