如何在请求中添加body并在nodejs express中获得第二个休息服务

时间:2017-09-28 17:47:05

标签: javascript node.js http httprequest

我正在尝试使用POST将数据从一个休息服务发送到另一个休息服务。

first.js

const express = require("express");
const http = require("http");

var router = express.Router();

var options = {
  host: "localhost",
  port: "3000",
  path: "/second",
  method: "POST",
  body: JSON.stringify({ foo: "foo" })
};

router.get("/", function(req, res, next) {
  http.request(options);
});

module.exports = router;

second.js

var express = require("express");
var router = express.Router();

router.post("/", function(req, res, next) {
  console.log(req.body);
  res.send("Hello");
});

module.exports = router;

返回空对象{}。有谁知道如何将JSON正文从一个服务发送到另一个服务。

app.js

app.use("/first", first);
app.use("/second", second);

1 个答案:

答案 0 :(得分:1)

您的问题可能不是发送请求正文,但正在阅读

为了处理正文,您需要使用中间件。通常,您会使用bodyParser.jsonDocs,请查看底部示例)

// In second.js, in addition to your other stuff
import bodyParser from 'body-parser';

app.use(bodyParser.json());

这将允许它解析JSON。

另一步是发送方(first.js)。您需要添加标题Content-Type: application/json

这两件事情将允许second.js正确阅读正文并使其可用。