Estoy tratando de acceder a los parámetros en mis rutas API Next.js. Me pregunto por qué para acceder a una determinada id de ruta dinámica debo usar req.query cuando normalmente en express accedería a la id a través de params . ¿Es req.query la forma correcta de acceder a la id ?
Tengo la siguiente estructura de carpetas api.
/pages /api /posts -index.js -[postId].js En mi archivo [postId] tengo lo siguiente
function handler(req, res) { // shows undefined console.log(req.params); const postId = req.params.postId;y mi llamada api es la siguiente:
fetch(`/api/posts/${id}`)En referencia a los documentos de nextJs , todos los ejemplos usan req.query para obtener la identificación u otros parámetros:
import { useRouter } from 'next/router' const Post = () => { const router = useRouter() const { pid } = router.query return <p>Post: {pid}</p> } export default PostAsí que no hay nada malo con este enfoque.
Nextjs no dice explícitamente por qué usan query en lugar de params , pero en la sección sobre rutas dinámicas puede obtener algunas pistas:
la ruta /post/abc?foo=bar tendrá el siguiente objeto de consulta:
{ "foo": "bar", "pid": "abc" }Probablemente usan la consulta como una forma de unir tanto los parámetros como la consulta en un objeto o simplemente es más conveniente usarlo de esa manera, por lo que no hay referencia al respecto, no tiene que preocuparse tanto, solo use la consulta y sea feliz. .