【发布时间】:2017-04-01 22:13:50
【问题描述】:
我尝试了许多不同的模块和方法。 即使通过构建单独的测试项目并单独测试每个模块来证明其他模块在 Node 中确实可以正常工作。
Posting FROM Node's hosted router to a remote API (not TO Node's hosted API)
此问题不是向 API 发送数据的问题之一。它必须在接收 API 中出现问题,因为某种原因没有放弃它正在接收的数据。
我已经通过将调用发送到http://httpbin/org 来证明 PUT 或 POST 调用正在发送数据。该网站显示我正在发送我期望发送的内容。
这是我发送的方式。我什至可以在接收 API 中看到该 API 肯定被成功调用了。
--发送--((再次。这显示了我的node.http尝试。但是我使用requestjs,requestifyjs,needlejs遇到了同样的问题))
router.get('/', function (req, res, next) {
var hst = req.headers.host.split(':');
var lookbackURL = 'https://' + req.headers.host + req.baseUrl;
lookbackURL = 'http"httpbin.org/put';
var dat = {
what: 'ever'
, try: 'again'
};
var bdy = JSON.stringify(dat);
var options = {
host: hst[0], port: hst[1], path: req.baseUrl, method: 'PUT'
, headers: { 'Content-Type': 'application/json' }
};
var r = nodeHttp.request(options); r.write(bdy); r.end();
res.sendStatus(200);
});
-- 接收--
router.put('/', function (req, res, next) {
console.log('r', req);
});
无论我使用什么模块或方法,在所有情况下,接收req 对象都不包含what 或try 数据。
但在我的测试项目中,在所有情况下,数据都如我所愿。
在测试项目中执行相同的console.log(req);,reqestjs、requestjs、needlejs、node.http 都显示了正确的主体对象。
但在这个问题中,req 中没有 body 对象。
并将这个 put/post 发送到 http://httpbin.org 我可以看到 body 对象正在发送。
有什么想法吗?
【问题讨论】:
-
可能是因为 try 是保留字。使用其他变量名
-
@Incognito 没有。对不起。我改变了,因为你问。还是同样的问题。
-
您必须更改它,因为它会产生编译错误
-
没有。没有编译或运行时错误
-
你能试着缩小你的问题范围并更准确吗?
标签: javascript node.js express