【发布时间】:2012-04-20 03:29:36
【问题描述】:
事情是这样的: 我有一个将数据发送到服务器的客户端。此服务器必须联系外部 A.P.I.并将其响应发送回客户端。一旦服务器获得客户端数据,我就是不知道如何以及在何处联系外部 A.P.I。
我这样路由客户端数据:
app.post('/getAutoComplete', routes.read);
routes.read 检索 req.body 中的数据。使用我的 nodejs 版本(没有 express 框架),然后我以这种方式请求 api:
var http = require('http'), options = {
host : "192.168.1.38",
port : 8080,
path : "/myURL",
method : 'POST'
};
var webservice_data = "";
var webservice_request = http.request(options, function(webservice_response)
{
webservice_response.on('error', function(e){ console.log(e.message); });
webservice_response.on('data', function(chunk){ webservice_data += chunk;});
webservice_response.on('end', function(){res.send(webservice_data);});
});
webservice_request.write(req.body);
webservice_request.end();
问题是我想使用原生 expressJS 方法,比如 app.post,但我不知道怎么做,因为:
- Express (app) 对象在此处不可用(在 app.js 中声明但不在路由文件中)
- 我不知道如何使用 app.post 发送 POST 数据
有什么建议吗?
【问题讨论】:
-
这不是 Express 的工作方式。 “像
app.post这样的原生 expressJS 方法”用于接收 HTTP 请求,而不是发送它们。 -
那么我应该如何联系外部 A.P.I.使用 expressJS 吗?和我现在做的一样吗?