-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnode.js
27 lines (22 loc) · 1.35 KB
/
node.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
const express = require("express");
const path = require("path");
const app = express();
const configs = {
caminho: "build", //Aqui será definido a pasta de saída onde contém o index.html e os outros arquivos.
forcarHTTPS: true, //Defina para true se desejar que o redirecionamento para HTTPS seja forçado (é necessário certificado SSL ativo)
port: process.env.PORT || 3000
}
if (configs.forcarHTTPS) //Se o redirecionamento HTTP estiver habilitado, registra o middleware abaixo
app.use((req, res, next) => { //Cria um middleware onde todas as requests passam por ele
if (req.headers["x-forwarded-proto"] == "http") //Checa se o protocolo informado nos headers é HTTP
res.redirect(`https://${req.headers.host}${req.url}`); //Redireciona pra HTTPS
else //Se a requisição já é HTTPS
next(); //Não precisa redirecionar, passa para os próximos middlewares que servirão com o conteúdo desejado
});
app.use(express.static(configs.caminho)); //Serve os outros arquivos, como CSSs, Javascripts, Imagens etc.
app.get("*", (req, res) => {// O wildcard '*' serve para servir o mesmo index.html independente do caminho especificado pelo navegador.
res.sendFile(path.join(__dirname, configs.caminho, "index.html"));
});
app.listen(configs.port, () => {
console.log(`Escutando na ${configs.port}!`);
});