Estoy tratando de permitir que un usuario ingrese su nombre y lo agregue a la URL.
por ejemplo, si la entrada del usuario es John, redirige al usuario a "/perfil/John"
Hasta ahora, he intentado definir un nombre de variable a partir de la entrada analizada de mi formulario html.
código HTML;
<h4>Search for your profile by entering your name below.</h4> <form class="" action="/" method="post"> <input type="text" name="name" placeholder="Enter your name"> <button type="submit" name="button">Search</button> </form>código de nodo;
app.get('/',function(req,res){ var name = String(req.body.name); }); app.post("/profile/:" + name, (req,res)=>{ var data = { age: 19, job: 'Student', hobbies: ['Fishing','Video games','Anime','Basketball'] }; res.render('profile',{name: req.params.name, data: data}); });Pero me sale este error;
^ app.get('/profile/:' + name, (req,res)=>{ ^ ReferenceError: name is not definednecesitas poner el nombre dentro de las comillas de la ruta, así
app.get('/profile/:name',(req,res) =>{ }
el: después de / indica que el siguiente valor es dinámico
echa un vistazo a ExpressJS - Construcción de URL
app.get('/',function(req,res){ // var name = String(req.body.name); });Arriba no es parte necesaria. Debe manejar como a continuación
app.post("/profile/:name", (req,res)=>{ var name = String(req.params.name) var data = { age: 19, job: 'Student', hobbies: ['Fishing','Video games','Anime','Basketball'] }; res.render('profile',{name: req.params.name, data: data}); });Puedes consultar los detalles en esta pregunta .