繁体   English   中英

如何在Angular控制器中使用Browserized npm软件包?

[英]How to use Browserified npm package in Angular controller?

我已经花了数小时来寻找一种使它(或任何东西)与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本身内的单独脚本中访问函数,但是每个函数总是返回未定义的。 如何在客户端代码中运行类似“ validator.isAlphaNumeric($ scope.username)”的内容?

您需要给browserify一个名称,以将所有内容导出到该名称。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM