2017-02-08 70 views
0

如何在claudiajs中使用節點包。我試圖使用node-twitter-api和node-twitter,但得到空白的迴應。 承諾將需要或不,我不知道它在lambda。 如果任何人有任何例子或文件可能有多個節點包與claudiajs用於lambda。參考:http://claudia.jshttps://vimeo.com/156232471如何使用claudiajs中的節點包在aws lambda中使用它

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

歡迎使用Stack Overflow。您可能需要閱讀http://stackoverflow.com/help/how-to-ask以獲取有關如何讓人們輕鬆回答的幫助。在這種情況下,你已經拋棄了一堆代碼,而沒有具體說明你正在嘗試做什麼,或者你認爲問題出在哪裏。沒有人能夠回答它 – Mikkel

回答

1

您可以只用包入的package.json,使用正常的JavaScript命令NPM使用的軟件包(如npm install <package-name> -S,以獲取更多信息,請查看https://claudiajs.com/tutorials/packaging.html),但根據您的代碼這並未」似乎是問題。

  • 您應該將該承諾退出處理程序。 (你只是實例化的承諾,不返回它)
  • 不需要使用藍鳥,lambda使用節點4.3,它支持Promise開箱即用
  • twitter.getRequestToken似乎使用回調,你需要將其轉回給您要退回的承諾並解決/拒絕結果。在線查看某個地方的承諾介紹,或者直接使用denodeify將回調函數直接轉換爲承諾