📜  如何在 Node.js 中重定向回原始 URL?

📅  最后修改于: 2022-05-13 01:56:50.578000             🧑  作者: Mango

如何在 Node.js 中重定向回原始 URL?

Node.jsExpress的帮助下,支持网页路由。这意味着当客户端发出不同的请求时,应用程序将根据发出的请求和定义的路由方法被路由到不同的网页。要了解有关 Node.js 路由和实现的更多信息,请参阅本文

在本文中,我们将讨论如何在 Node.js 中重定向回原始 URL。

res.redirect()是一个 URL 实用程序函数,它有助于根据指定的路径重定向网页。

句法:

return res.redirect([status], path)

对于第一个示例,我们将用户重定向到具有不同域的指定 URL。确保在运行代码之前在项目中安装 express

Javascript
const express= require('express');
 
var app= express();
 
app.get('/',function(req,res){
  // On getting the home route request,
  // the user will be redirected to GFG website
  res.redirect('https://www.geeksforgeeks.org');
});
 
app.listen(3000,function(req,res){
  console.log("Server is running at port 3000");
});


Javascript
const express= require('express');
 
var app= express();
 
//Defining '/' route
app.get('/',function(req,res){
  res.redirect('https://www.geeksforgeeks.org');
});
 
//Defining '/example' route
app.get('/example',function(req,res){
  res.redirect('https://www.geeksforgeeks.org/array-data-structure/');
});
 
//Defining '/redex' route
app.get('/redex',function(req,res){
  res.redirect('back');
})
 
app.listen(3000,function(req,res){
  console.log("Server is running at port 3000");
});


当上面的代码使用 node 执行时,当我们在 3000 端口上请求 home 路由时,我们将被重定向到GeeksforGeeks网站。

输出:

其他方法:除了重定向到不同的域,我们还有一些其他方法可用于重定向,如下所示。

域相对重定向:我们可以使用这种方法重定向到同一个域下的不同页面。例如,如果用户在http://example.com/gfg/post1 ,那么我们可以使用以下代码行重定向到http://example.com/article

res.redirect('/article');

路径名相对重定向:我们可以使用这种方法重定向到网站上的上一个路径。例如,如果用户在http://example.com/gfg/post1 ,那么我们可以使用以下代码行重定向到http://example.com/gfg

res.redirect('..');

重定向回原始 URL:

在了解了 res.redirect()函数之后,我们现在可以讨论如何在 NodeJS 中重定向回原始 URL。

反向重定向:

我们可以使用这种方法将请求重定向回referrer 。如果没有referrer ,则默认将请求重定向到“/”路由。

res.redirect('back');

例子:

假设我们在“/example”路线。在请求 '/redex' 路由时,我们将自动重定向到下面代码中定义的 '/' 路由

Javascript

const express= require('express');
 
var app= express();
 
//Defining '/' route
app.get('/',function(req,res){
  res.redirect('https://www.geeksforgeeks.org');
});
 
//Defining '/example' route
app.get('/example',function(req,res){
  res.redirect('https://www.geeksforgeeks.org/array-data-structure/');
});
 
//Defining '/redex' route
app.get('/redex',function(req,res){
  res.redirect('back');
})
 
app.listen(3000,function(req,res){
  console.log("Server is running at port 3000");
});

输出:

参考: https ://expressjs.com/en/5x/api.html#res.redirect