所以我正在尝试使用 Facebook 集成构建我的第一个 web 应用程序(使用facebook-node-sdk)。我让它对 api 进行简单的调用,但现在是时候将这一切放在一个简单的服务器中并根据请求进行调用(这不会是 webapp 本身,而是更多的 API 服务器)。
我遇到的问题是,即使我(大概)使用bluebird来承诺 Facebook sdk 和我的makeCall
方法,我仍然打印“hi”然后“undefined” -console.log
在 makeCall 之前被调用可以返回任何东西。
这是我的app.js
:
var Promise = require('bluebird')
, http = require('http')
, Facebook = Promise.promisifyAll(require('facebook-node-sdk'))
, config = require('./config')
, fb = new Facebook({ appId: config.fb.api, secret: config.fb.secret });
var makeCall = new Promise.method(function (username) {
return fb.api(username, function(err, data) {
console.log('hi')
if (err) return err;
return data;
});
});
http.createServer( function (req, res) {
makeCall('/me').then(console.log)
}).listen(8001);