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