const express = require('express'); const app = express(); app.get('/',(req,res) =>{ // result shows on localhost:3000 res.send('hello world'); }); app.get('/api/courses',(req,res) =>{ // result shows on localhost:3000/api/courses res.send(\[1,2,3\]); }); app.get('/api/courses/:id',(req,res) =>{ // result does not show on localhost:3000/api/courses/1 res.send(req.param.id); }); //PORT const port= process.env.PORT||3000; app.listen(port,()=\>console.log(\``Listening to port ${port}...`\`));Parece que estoy obteniendo resultados para las primeras 2 funciones de obtención, pero no para la ID, aparece el siguiente error Cannot GET /api/courses/1 ¿cómo lo soluciono?
esperaba salida de id como '1' para mostrar
Tuviste un error de sintaxis en tu línea console.log() al iniciar el servidor: console.log(``Listening to port ${port}...\) no es JavaScript válido (esto podría haber sido solo un error de edición cuando pegaste tu código aquí).
Pero lo más importante, le falta una s en param . Debería ser req.params.id .
El siguiente código funciona para mí. Lo he probado usando Postman.
import express from "express"; const app = express(); app.get("/", (req, res) => { // result shows on localhost:3000 res.send("hello world"); }); app.get("/api/courses", (req, res) => { // result shows on localhost:3000/api/courses res.send([1, 2, 3]); }); app.get("/api/courses/:id", (req, res) => { // // result does not show on localhost:3000/api/courses/1 res.send(req.param.id); res.send(`This handler has received the value ${req.params.id} for ID`); }); //PORT const port = process.env.PORT || 3000; app.listen(port, () => console.log(`Listening to port ${port}...`));