簡體   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