背景: 我正在使用构建一个使用2个不同的第三方来做某事的系统。 第三方#1 - 是facebook messenger app,需要webhook通过POST()协议连接和发送信息。 第三方#2 - 是我用来构建机器人的平台(称为GUPSHUP)。
我的服务器位于它们之间 - 所以,我需要将facebook messenger应用程序挂钩到我的服务器上的端点(已经做过),因此Facebook应用程序获得的每条消息都会发送到MY服务器
现在,我真正需要的是,我的服务器充当"中间件"并简单地发送" req"和" res"它进入另一个平台网址(让我们称之为GUPSHUP-URL),获取资源并将其发送到Facebook应用程序。
我不知道如何编写像这样的中间件。 我的服务器帖子功能是:
app.post('/webhook', function (req, res) {
/* send to the GUPSHUP-URL , the req,res which I got ,
and get the update(?) req and also res so I can pass them
back like this (I think)
req = GUPSHUP-URL.req
res = GUPSHUP-URL.res
*/
});

答案 0 :(得分:1)
是的,您可以使用请求模块
在另一台服务器上传递do请求var request = require('request');
app.post('/webhook', function (req, res) {
/* send to the GUPSHUP-URL , the req,res which I got ,
and get the update(?) req and also res so I can pass them
back like this (I think)
req = GUPSHUP-URL.req
res = GUPSHUP-URL.res
*/
request('GUPSHUP-URL', function (error, response, body) {
if(error){
console.log('error:', error); // Print the error if one occurred
return res.status(400).send(error)
}
console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
console.log('body:', body); // Print the HTML for the Google homepage.
return res.status(200).send(body); //Return to client
});
});
第二版
var request = require('request');
//use callback function to pass uper post
function requestToGUPSHUP(url,callback){
request(url, function (error, response, body) {
return callback(error, response, body);
}
app.post('/webhook', function (req, res) {
/* send to the GUPSHUP-URL , the req,res which I got ,
and get the update(?) req and also res so I can pass them
back like this (I think)
req = GUPSHUP-URL.req
res = GUPSHUP-URL.res
*/
requestToGUPSHUP('GUPSHUP-URL',function (error, response, body) {
if(error){
return res.status(400).send(error)
}
//do whatever you want
return res.status(200).send(body); //Return to client
});
});
更多信息Request module