如何从Meteor服务器访问Braintree功能



我正在尝试在我的 Meteor 应用程序中使用 Braintree,并且我已经按照这篇关于该主题的博客文章的说明制作了这个 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....)

然后,我尝试按照 Braintree 文档的建议加入这一行,但它只是抛出了一个未定义"require"的错误。

var braintree = require("braintree");

Braintree文档使用Express方法来实现一切,但这并没有太大帮助。

我之前引用的包定义了它server.js的单行:

Braintree = Npm.require("braintree");

所以我尝试将我的引用更改为 Braintree 而不是 braintree ,但这未以完全相同的方式定义。

我如何在布伦特里使用它?

提前感谢!

服务器软件包要求在软件包外部使用的符号与api.export一起导出。看起来您引用的软件包是在 meteor v0.6.5 之前构建的。我记得,EventedMind上的这段视频解释了这一切是如何工作的。我怀疑您问题的解决方案只是使您的package.js看起来像这样:

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

最新更新