bundle.js:50930未捕获TypeError:require(...)。createServer不是函数

时间:2016-11-24 11:01:14

标签: node.js stripe-payments browserify

我在我的网站上集成了条带api。我使用stripe,express和http-browserify创建了bundle.js。并遇到此错误:

  

bundle.js:50930未捕获TypeError:require(...)。createServer不是   功能        在对象。

     

at Object.require.stripe ... / package.json

     

at s bundle.js:1:262        在/post.html:11:14(匿名函数)

     

@ bundle.js:50930require.stripe ... / package.json

     

@ bundle.js:51112s

     

@ bundle.js:1(匿名函数)@ post.html:11

当我点击错误时,它会给出错误:

Stripe.DEFAULT_TIMEOUT = require('http').createServer().timeout;

2 个答案:

答案 0 :(得分:3)

您使用了服务器端stripe包,其中the documentation states

  

这些只是服务器端绑定

     

如果您正在寻找安装stripe.js,我们的客户端标记化库 - 这不是它。这些只是服务器端node.js绑定。

您无法在浏览器中使用这些内容。

NPM无法提供客户端库stripe.js,因此您需要使用以下方法将其以旧式方式添加到客户端代码中:

<script src='https://js.stripe.com/v2/'></script>

答案 1 :(得分:1)

如果您在客户端使用此代码:

You cannot, at least You've to provide this `timeout` param from backend.
or just hardcode it and etc.



如果您在服务器端使用此代码,那么......:

问题在于:createServer()

来自docs

  

http.createServer([requestListener])

     

添加于:v0.1.13

Returns: <http.Server>
     

返回http.Server的新实例。

     

requestListener是一个自动添加到的函数   'request'事件。

获取至少超时值您必须传递一个空函数才能成功创建http服务器。



这么脏的修复:

Stripe.DEFAULT_TIMEOUT = require('http').createServer(function(){}).timeout;