我在我的网站上集成了条带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;
答案 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;