es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

NextJs – Mismo nombre de ruta para acciones diferentes

Quiero saber, ¿podemos usar el mismo nombre de ruta para una acción diferente?
por ejemplo, producto/id para obtener, editar y eliminar datos.

¿Es posible en NextJs? Quiero lograr el mismo sistema de enrutamiento que Laravel, donde se puede usar un nombre para diferentes acciones basado en el método del formulario.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible utilizar el mismo nombre de ruta para una acción diferente en Next.js. Sin embargo, requeriría definir controladores diferentes para cada acción utilizando la misma ruta. Por ejemplo, para manejar las solicitudes GET, EDIT y DELETE para un producto con el parámetro ID, puedes definir tres controladores separados para cada acción en el mismo archivo.

    /pages/product/[id].js
    
    function getAllProductHandler(req, res) {
      // manejar la solicitud GET
    }
    
    function editProductHandler(req, res) {
      // manejar la solicitud EDIT
    }
    
    function deleteProductHandler(req, res) {
      // manejar la solicitud DELETE
    }
    
    export default function handler(req, res) {
      const { id } = req.query;
    
      switch(req.method) {
        case 'GET':
          return getAllProductHandler(req, res);
        case 'PUT':
          return editProductHandler(req, res);
        case 'DELETE':
          return deleteProductHandler(req, res);
        default:
          res.status(400).json({ message: 'Método de solicitud no válido' });
      }
    }
    

    En este ejemplo, hemos definido tres controladores para las solicitudes GET, EDIT y DELETE para la ruta product con el parámetro id. La instrucción switch dentro de la función handler verifica el método de la solicitud y llama a la función de controlador apropiada en base a eso.

    Este sistema de enrutamiento es similar al sistema de enrutamiento de Laravel, donde puedes definir diferentes acciones para la misma ruta según el método de solicitud.

Comments are closed.