如何使用RequireJS for Yelp API,客户端javascript

时间:2014-04-16 20:51:25

标签: javascript requirejs client-side yelp

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

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

设置: -lib

-node_modules

-public - Javascript角--- fileusingyelp.js

-public - javascripts --- yelp库

-routes

-views

app.ks

的package.json


I am following this demo。代码:

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);
});

以下是错误: 未捕获的TypeError:undefined不是函数coursecreation.js:12

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

//此引用错误与yelp库中的index.js文件相关,

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

未捕获的TypeError:undefined不是函数coursecreation.js:2

1 个答案:

答案 0 :(得分:1)

我已经看过你要使用的yelp library了。它用于Node.js.通常,您不能只使用创建的库与Node.js一起使用,并使用RequireJS加载它。在最好的情况下,您可以通过使用define调用包装代码,将为Node.js制作的代码库转换为RequireJS使用的代码。

不幸的是,最好的情况不适用于此,因为node-yelp实际上使用了一些特定于Node.js的库(例如,querystring),它调用node-oauth,它本身使用特定于库的库到Node.js(例如,crypto)。为了能够在RequireJS中使用node-yelp,您必须修改node-yelp,并且可能需要node-oauth,以便能够在没有Node.js特定的库的情况下进行操作。这是一项重大任务。

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