2016-12-24 80 views
-1

功能我得到正確的信用卡信息在輸入時做我調用的函數來驗證信用卡LUHN模塊(NPM安裝LUHN),因爲我用:如何使用要求JS

var luhn = require("luhn"); 
is_valid = luhn.validate(card); // should respond true. 
if (!is_valid) { 
      console.log("Not a valid credit card"); 
} 
return;` 

Uncaught ReferenceError: require is not defined

我很抱歉如果這是一個簡單的問題,但是因爲我找不到npm包裝使用的邏輯簡短解決方案。 onsubmit我這次叫kkTahsil()函數。

function kkTahsil() { 
datalariAl(); 

var Iyzipay = require('iyzipay'); 
var iyzipay = new window.Iyzipay({ 
    apiKey: 'sandbox-PZ8jicWrEeE1rt1O75FTOegr5lsW3xxx', 
    secretKey: 'sandbox-2Q6aaP1FK3HFrXkTsHfftxfiudFMfxxx', 
    uri: 'https://sandbox-api.iyzipay.com' 
}); 

var nameOnCard = document.getElementById('name-on-card').value; 
var expireMonth = document.getElementById('card-exp-month').value; 
var expireYear = document.getElementById('card-exp-year').value; 
var cvc= document.getElementById('card-cvv').value; 

再次出現同樣的錯誤。

所以在js中,必須有簡單的方法來使用npm模塊。但我還沒找到。 我需要幫助。

+0

什麼是你正在使用的模塊系統?如果你使用關鍵字「require」,那麼有些東西需要實現它(這不是一個簡單的JavaScript事情)。你在這裏的節點環境還是這個客戶端JavaScript? –

+0

我真的很新,在節點和NPM。所以我在npm頁面找到了這個'luhn'模塊。並安裝了節點模塊目錄。用npm install命令。在web或js上,沒有關於模塊系統的額外定義。我應該使用什麼。如何 ? – HakanC

+0

我想我會從節點一開始,CommonJS或者RequireJS,我知道它也很流行(它不是本地節點之一,但它統一了服務器和客戶端之間的模塊系統)。 但我會告訴你一件事,如果我是全新的品牌,我可能不會試圖做你正在做的事情。我打了「hello world」教程。 –

回答

4

require在瀏覽器中不可用。它在Node.js中使用。

如果你想在客戶端使用require然後使用Browserify

Browserify lets you require('modules') in the browser by bundling up all of your dependencies.

事實上,require不能使用瀏覽器的形式,因爲它是在節點中實現。 require的問題在於它是同步的。它可以在事件循環的第一個滴答時在服務器端工作,因爲沒有事件監聽器被綁定在I/O上,但它不會在瀏覽器中正常工作,因爲它不得不阻止用戶界面整個模塊下載,編譯和運行的時間。

事實上,同步與異步模塊加載一直存在爭議。見這些答案更多細節:

+0

嗨,謝謝你的幫助,但現在我又來了另一點。我在表單標籤之間使用html格式的信用卡表單。而我的服務器在firebase。我有一個start.js發送數據到https://github.com/iyzico/iyzipay-node服務器。 start.js與上面的代碼(2.part)相同,但沒有函數當我用npm run-script start啓動它時。它的工作(sendind記錄到信用卡收費)但我無法找到提交表單後如何運行此代碼的方式。希望清楚。如果你能爲此提供幫助,我將非常高興。 :) – HakanC

+0

您應該爲此提供一個單獨的問題,包括相關說明,測試內容,代碼等。 - 隨時提出問題(如果您仍然需要幫助),並在其中加上標籤。 – SeanRamzan