[英]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.