2016-12-24 81 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