From 9047c10d9a52154301e2c9e87767b252b67c0530 Mon Sep 17 00:00:00 2001 From: "dado.cloud" Date: Wed, 21 Oct 2026 13:12:40 +0000 Subject: [PATCH] Modelo do encurtador em Express Gerado a partir de deploy-templates/express (dado.cloud 18345d5). --- server.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/server.js b/server.js index b6fa79a..f1a9e9d 100644 --- a/server.js +++ b/server.js @@ -23,11 +23,13 @@ const inicioFormatado = `${INICIO.toLocaleDateString('pt-BR', fusoBrasilia)} às })} (horário de Brasília)`; // A página é montada uma vez só: nada nela muda enquanto o processo vive. +// O valor entra por função (`() => valor`): com uma string, o replace trataria +// `$&`, `$'` e `$$` da mensagem como padrões especiais e estragaria a página. const paginaInicial = lerPagina('index.html') - .replace('{{RUNTIME}}', escaparHtml(`Express ${pacote.dependencies.express} · Node.js ${process.versions.node}`)) - .replace('{{INICIO_ISO}}', INICIO.toISOString()) - .replace('{{INICIO}}', escaparHtml(inicioFormatado)) - .replace('{{MENSAGEM}}', escaparHtml(MENSAGEM)); + .replace('{{RUNTIME}}', () => escaparHtml(`Express ${pacote.dependencies.express} · Node.js ${process.versions.node}`)) + .replace('{{INICIO_ISO}}', () => INICIO.toISOString()) + .replace('{{INICIO}}', () => escaparHtml(inicioFormatado)) + .replace('{{MENSAGEM}}', () => escaparHtml(MENSAGEM)); const paginaNaoEncontrada = lerPagina('nao-encontrado.html'); // Freio simples contra abuso: no máximo 30 links novos a cada 10 minutos por IP.