2014-03-03 14 views
1

我想在我的Meteor应用程序中使用Braintree,并且我制作了一个本地包this Braintree packaging,按照this blog post on the subject的说明进行安装,并且安装顺利。如何从流星服务器访问braintree功能

现在,虽然,我有这样的代码:

// defined in server/fixtures.js 
Gateway = braintree.connect({ 
    environment: braintree.Environment.Sandbox, 
    merchantId: "secret", 
    publicKey: "secret", 
    privateKey: "secret" 
}); 

和它抛出这个错误:

ReferenceError: braintree is not defined 
(etc....) 

然后我想在这行抛出的建议the Braintree documentation,但它只是抛出一个错误“要求”没有定义。

var braintree = require("braintree"); 

Braintree文档使用Express方法来使所有事情都发生,但这不是很多的帮助。

我前面引用定义它的server.js这种单线包:

Braintree = Npm.require("braintree"); 

所以我试图改变我的引用Braintree而非braintree,但是这是不确定的方式不尽相同。

如何在Braintree上使用它?

在此先感谢!

回答

2

服务器软件包要求在软件包外部使用的符号与api.export一起导出。它看起来像你引用的包是在流星v0.6.5之前构建的。我记得,EventedMind的this video解释了所有这些工作。我怀疑的问题的解决方案是只是为了让你的package.js看起来是这样的:

Package.on_use(function (api) { 
    api.export('Braintree'); 
    api.use(...); 
    api.add_files(...); 
}); 
+0

我得到这样的:'package.js:1:24:API不defined'。我把这一行放在本地软件包中,那就是你想要的正确的? – blaineh

+0

我也尝试将它放在'Package.on_use'中,但是得到:'TypeError:无法读取未定义的属性'Environment' – blaineh

+0

哦,等待等待,我想我刚刚得到它的工作,'Package.on_use'是正确的我只需要将你的行改为'api.export('Braintree');'大写,因为这就是这个包的用途。 – blaineh