如何在 Node.js 中重定向回原始 URL?
Node.js在Express的帮助下,支持网页路由。这意味着当客户端发出不同的请求时,应用程序将根据发出的请求和定义的路由方法被路由到不同的网页。要了解有关 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