我如何在 claudiajs 中使用节点包以在 aws lambda 中使用它
How can i use node packages in claudiajs for use it in aws lambda
如何在 claudiajs 中使用节点包。我尝试在其中使用 node-twitter-api 和 node-twitter 但得到空白响应。
承诺是否需要我在lambda中对此一无所知。
如果有人有任何示例或文档可能有多个节点包与 lambda 的 claudiajs 一起使用。参考:http://claudia.js , https://vimeo.com/156232471
var ApiBuilder = require('claudia-api-builder'),
api = new ApiBuilder();
var twitterAPI = require('node-twitter-api');
var Promise = require("bluebird");
api.get("/request-token", function(request) {
'use strict';
new Promise(function(resolve) {
var twitter = new twitterAPI({
consumerKey: "ckey",
consumerSecret: "cskey",
callback: 'http://localhost:3000/access-token'
});
var res;
twitter.getRequestToken(function(err, requestToken, requestSecret) {
if (err)
res = err;
else {
var _requestSecret = requestSecret;
var url = "https://twitter.com/oauth/authenticate?oauth_token" + requestToken;
res = url;
//res.redirect(url);
}
});
return res;
});
});
您可以使用正常的 javascript NPM 命令(例如 npm install <package-name> -S
,查看 https://claudiajs.com/tutorials/packaging.html 了解更多信息),将包包含到 package.json 中,但是根据您的代码,这似乎不是问题所在。
- 你应该 return 处理程序的承诺。 (您只是在实例化承诺,而不是 returning 它)
- 无需使用 bluebird,lambda 使用开箱即用支持 Promises 的节点 4.3
- twitter.getRequestToken 似乎使用回调,您需要将其转换回您return 的承诺和 resolve/reject 结果。看看网上某处关于 promises 的介绍,或者直接使用 denodeify 将回调函数变成 promise
如何在 claudiajs 中使用节点包。我尝试在其中使用 node-twitter-api 和 node-twitter 但得到空白响应。 承诺是否需要我在lambda中对此一无所知。 如果有人有任何示例或文档可能有多个节点包与 lambda 的 claudiajs 一起使用。参考:http://claudia.js , https://vimeo.com/156232471
var ApiBuilder = require('claudia-api-builder'),
api = new ApiBuilder();
var twitterAPI = require('node-twitter-api');
var Promise = require("bluebird");
api.get("/request-token", function(request) {
'use strict';
new Promise(function(resolve) {
var twitter = new twitterAPI({
consumerKey: "ckey",
consumerSecret: "cskey",
callback: 'http://localhost:3000/access-token'
});
var res;
twitter.getRequestToken(function(err, requestToken, requestSecret) {
if (err)
res = err;
else {
var _requestSecret = requestSecret;
var url = "https://twitter.com/oauth/authenticate?oauth_token" + requestToken;
res = url;
//res.redirect(url);
}
});
return res;
});
});
您可以使用正常的 javascript NPM 命令(例如 npm install <package-name> -S
,查看 https://claudiajs.com/tutorials/packaging.html 了解更多信息),将包包含到 package.json 中,但是根据您的代码,这似乎不是问题所在。
- 你应该 return 处理程序的承诺。 (您只是在实例化承诺,而不是 returning 它)
- 无需使用 bluebird,lambda 使用开箱即用支持 Promises 的节点 4.3
- twitter.getRequestToken 似乎使用回调,您需要将其转换回您return 的承诺和 resolve/reject 结果。看看网上某处关于 promises 的介绍,或者直接使用 denodeify 将回调函数变成 promise