如何在请求中添加body并在Nodejs Express中获得第二次REST服务



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

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);

您的问题可能不是发送请求主体,而是读取 it。

为了处理身体,您需要使用中间件。通常,您将使用bodyParser.json(文档,检查底部以获取示例)

// 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正确阅读身体并使其可用。

相关内容

最新更新