我正在使用 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/