1

我正在尝试将 yelp api 合并到我的 Web 应用程序中。我希望用户能够向 yelp 服务器发出请求,而无需通过我的服务器并添加额外的数据传输。

我如何要求 yelp 并使用 requireJS 调用 yelp.CreateClient?还是我走错了路?

设置:-lib

-node_modules

-public--javascripts--fileusingyelp.js

-public--javascripts--yelp 库

-路线

- 意见

应用程序.ks

包.json


我正在关注这个演示。编码:

var yelp = require("../index").createClient({
  consumer_key: process.env.CONSUMER_KEY,
  consumer_secret: process.env.CONSUMER_SECRET,
  token: process.env.TOKEN,
  token_secret: process.env.TOKEN_SECRET,
  ssl: true
});


yelp.search({term: "food", location: "Montreal"}, function(error, data) {
  console.log(error);
  console.log(data);
});

据我了解,我不能在客户端以正常方式使用 require 。因此,我需要使用 RequireJS 库。

这是我的代码:

var yelp = require(["javascripts/yelp/index"] , function(inp){
  yelp.createClient({//second error
  consumer_key: "key",
  consumer_secret: "secret",
  token: "token",
  token_secret: "token_secret",
  ssl: true
});
});


var yresponse = yelp.search({term: "food", location: "Montreal"}, function(error, data) {//first error is here
  console.log(error);
  console.log(data);
});

以下是错误: Uncaught TypeError: undefined is not a function coursecreation.js:12

未捕获的 ReferenceError:模块未定义 index.js:1

//这个引用错误是关于yelp库中index.js文件的,

module.exports = require('./lib/yelp');

Uncaught TypeError: undefined is not a function coursecreation.js:2

4

1 回答 1

1

我查看了您尝试使用的yelp 库。它是为与 Node.js 一起使用而设计的。通常,您不能只使用为 Node.js 创建的库使用 RequireJS 加载它。在最好的情况下,您可以通过使用define调用包装代码,将为 Node.js 制作的代码库转换为 RequireJS 使用的东西。

不幸的是,最好的情况在这里并不适用,因为 node-yelp 实际上使用了一些特定于 Node.js 的库(例如querystring)并且它调用了node-oauth,它本身使用了特定于 Node.js 的库(例如crypto)。为了能够将 node-yelp 与 RequireJS 一起使用,您必须修改 node-yelp 并且也许 node-oauth 才能在没有特定于 Node.js 的库的情况下运行。这是一项重大事业。

请注意,可以设计一个与 RequireJS 一起使用并在 Node.js 中使用的库。(我已经做到了。)只是 node-yelp 不是这样设计的。

于 2014-04-16T22:47:01.320 回答