Atualizado: 02/01/2025

Redirecionamento - Node.js

Para realizar redirecionamentos em Node.js, utilizamos o método redirect():

redirect([status,] path)

O parâmetro path é o caminho para onde o usuário será redirecionado. O parâmetro adicional status define o código de status do redirecionamento. Se este parâmetro não for especificado, o código de status padrão enviado é 302, indicando um redirecionamento temporário.

Com este método, é possível fazer redirecionamentos tanto para caminhos relativos quanto absolutos, incluindo outros domínios.

Redirecionando para um Caminho Absoluto:

Exemplo:

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

app.use("/index", function (_, response) {
    response.redirect("https://www.programicio.com");
{);

app.listen(3000, () => console.log(Servidor iniciado em http://localhost:3000));

Neste exemplo, ao acessar o caminho /index, o usuário será redirecionado para o site https://www.programicio.com.

Redirecionando para um Caminho Relativo

Os redirecionamentos relativos não são complicados, mas é importante entender como o endereço de redirecionamento é definido. Vamos considerar um redirecionamento relativo ao caminho atual de onde o redirecionamento é feito. Por exemplo:

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

app.use("/home", function (_, response) {
    response.redirect("about");
});
app.use("/about", function (_, response) {
    response.send("<h1>About</h1>");
});

app.listen(3000, () => console.log(Servidor iniciado em http://localhost:3000));

Neste caso, haverá um redirecionamento do recurso /home para o recurso /about, ou seja, de http://localhost:3000/home para http://localhost:3000/about.

Agora, vamos ver um exemplo similar:

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

app.use("/home/bar", function (_, response) {
    response.redirect("about");
});
app.use("/home/about", function (_, response) {
    response.send("<h1>About</h1>");
});

app.listen(3000, () => console.log("Servidor iniciado em http://localhost:3000"));

Neste caso, o redirecionamento será feito para o recurso /home/about, ou seja, de http://localhost:3000/home/bar para http://localhost:3000/home/about.

É importante notar que o redirecionamento relativo é feito com base no caminho atual, e não no caminho raiz do servidor.

Para redirecionar em relação ao diretório raiz da aplicação, começamos o endereço com uma barra:

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

app.use("/home/bar", function (_, response) {
    response.redirect("/about");
});
app.use("/about", function (_, response) {
    response.send("<h1>About</h1>");
});

app.listen(3000, () => console.log("Servidor iniciado em http://localhost:3000"));

Neste caso, o redirecionamento será feito para o recurso /about, ou seja, de http://localhost:3000/home/bar para http://localhost:3000/about.

Mais alguns exemplos. Redirecionando para um endereço no mesmo nível:

app.use("/home/foo/bar", function (_, response) {
    response.redirect("./about");
});

Este redirecionamento levará de http://localhost:3000/home/foo/bar para http://localhost:3000/home/foo/about.

Redirecionando para um endereço no nível acima:

app.use("/home/foo/bar", function (_, response) {
    response.redirect("../about");
});

Este redirecionamento levará de http://localhost:3000/home/foo/bar para http://localhost:3000/home/about.

Redirecionando um nível acima:

app.use("/home/foo/bar", function (_, response) {
    response.redirect(".");
});

Este redirecionamento levará de http://localhost:3000/home/foo/bar para http://localhost:3000/home/foo.

Redirecionando dois níveis acima:

app.use("/home/foo/bar", function (_, response) {
    response.redirect("..");
});

Este redirecionamento levará de http://localhost:3000/home/foo/bar para http://localhost:3000/home.

Por padrão, um redirecionamento envia o código de status 302, que indica que o recurso está temporariamente disponível em um novo endereço. No entanto, podemos especificar o código de status 301 para fazer um redirecionamento permanente:

response.redirect(301, "/about");
Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com