如何使用nodejs中的数据和标头重定向到另一个Web服务

时间:2017-09-28 16:28:17

标签: javascript node.js

我正在使用express nodejs框架创建rest web服务。我想从first.js导航到second.js页面,需要向它发送数据和标题。

first.js

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

var router = express.Router();

var options = {
  host: "localhost",
  port: "3000",
  path: "/second",
  method: "POST"
};

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

module.exports = router;

second.js

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

router.get("/", function(req, res, next) {
  res.send("Hello");
});

module.exports = router;

app.js

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

我尝试过如上所述,但它没有导航到second.js网络服务。有谁知道我做错了什么?

2 个答案:

答案 0 :(得分:2)

您的代码未执行重定向。实际上,您正在从第一个端点到第二个端点之间进行呼叫,并且更像是代理。

通过调用http://expressjs.com/en/api.html(搜索res.redirect)中的明确文档中定义的res.redirect来执行重定向。重定向返回HTTP重定向响应,用户浏览器将遵循该重定向响应到新URL。不幸的是,重定向不允许传递头文件,它将作为GET调用执行(这是重定向的设计目的。)。您可以在URL中包含所需的任何查询参数,并设置cookie(请参阅How to forward headers on HTTP redirect

答案 1 :(得分:1)

我认为您在请求中使用POST

但只在第二个端点上设置GET