javascript - 如何在nodejs中使用数据和 header 重定向到另一个Web服务

标签 javascript node.js

我正在使用 Express Nodejs 框架创建 REST Web 服务。我想从first.js 导航到second.js 页面,并且需要向其发送数据和 header 。

第一个.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;

第二个.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);

我尝试了上面的方法,但它没有导航到 secondary.js Web 服务。有谁知道我做错了什么?

最佳答案

您的代码未执行重定向。您实际上是从第一个端点内部向第二个端点进行调用,并且更像代理。

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

关于javascript - 如何在nodejs中使用数据和 header 重定向到另一个Web服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46474065/

相关文章:

javascript - 在 javascript 和 WebGL 中创建纹理并在 WebAssembly 中识别它们

javascript - Firefox 扩展(观察者)- 仅触发 "http-on-modify-request"一次

javascript - 如何使用javascript检测移动设备屏幕是否关闭

javascript - 在 html 中隐藏和显示 div block

node.js - Mongoose : Update not working

mysql - 如何防止用户更改电脑时间并修改mysql中插入行的时间戳

node.js - 什么是 TickObject 以及如何防止它成为内存泄漏?

javascript - 当文件作为 'Error' 发送时,Express Route 返回状态代码 500 和通用 'multipart/form-data'

node.js - CentOS、Node.js、init.d、ENOENT,当应用程序自动启动时,无法在系统重新启动时打开或写入日志文件

node.js - 在 Node.JS 和 Express 中拦截 HTTPS 服务器上的 HTTP 响应