我正在尝试将 yelp api 合并到我的 Web 应用程序中。我希望用户能够向 yelp 服务器发出请求,而无需通过我的服务器并添加额外的数据传输。
如何使用 requireJS 请求 yelp 并调用 yelp.CreateClient?还是我走错了路?
设置: -lib
-node_modules
-public--javascripts---fileusingyelp.js
-public--javascripts---yelp 库
-路线
-浏览次数
应用程序.ks
package.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);
});
错误如下: 未捕获的类型错误:未定义不是函数 coursecreation.js:12
Uncaught ReferenceError :模块未定义index.js:1
//这个引用错误是关于yelp库中的index.js文件,
module.exports = require('./lib/yelp');
未捕获类型错误:未定义不是函数 coursecreation.js:2
最佳答案
我查看了 yelp library你正在尝试使用。它是为与 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 不是这样设计的。
关于javascript - 如何将 RequireJS 用于 Yelp API、客户端 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23119874/