este es un pequeño código de mi archivo index.js en backend:
var topic = ""; app.post(`/posts`,(req,res)=>{ topic = req.body.ReadMore; res.redirect(`/posts/${topic}`); }); app.get(`/posts/${topic}`, (req,res) => { res.render('page') }) Estoy tratando de cambiar el valor del topic variable y luego quiero redirigir a /posts/topic . Sin embargo, recibo este error: Cannot GET /posts/topicName (la consola muestra el error 404). ¿Por qué esto no funciona? Además, si solo codifico el nombre del tema en mi solicitud de obtención, por ejemplo,
app.get('/posts/topicName', (req,res) => { res.render('page') })Funciona perfectamente. Pero en mi caso, tengo muchos temas que se pueden pasar al servidor y necesito mostrar las páginas de manera relevante.
El /posts/${topic} se evalúa una vez. Entonces, si el topic es una cadena vacía, el middleware ve el valor de la ruta como /posts/ . Incluso si cambia el valor de la variable de topic , la ruta ya está establecida.
Puede usar este /post/:topic para tener un tema como un parámetro dinámico para express. A continuación, puede utilizar
const topic = ""; app.get(`/posts/:topic`, (req,res,next) => { const param_topic = req.params.topic; if (param_topic == topic) { // do something } else { return next() } )}