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.

Fastify – Cómo obtener campos que no son de archivo usando fastify-multipart

Cómo acceder al texto de las solicitudes que son campos “no archivo”? (Estoy usando Insomnia)

Nuestra solicitud utilizando Insomnia

Estamos capaces de acceder a los campos “archivo” mediante un bucle a través de las partes. usando const parts = await req.files();.

index.js

    import Fastify from "fastify";
    import FastifyMultipart from "fastify-multipart";

export const fastify = await Fastify();
fastify.register(FastifyMultipart);
controllers/property.js
    export const addProperty = async function (req, res) {
      try {
        // ACCEDEMOS A LOS ARCHIVOS DE LA SOLICITUD DE FORMULARIO MULTIPART AQUÍ
        const parts = await req.files();
        for await (const data of parts) {
          console.log("*******Archivo en acceso**********");
          console.log(data.filename); // acceder al nombre del archivo
          ...
        }
        // ¿CÓMO ACCEDER A OTROS CAMPOS *NO ARCHIVO*?
        ...
        res.status(201).send({ message: "¡Propiedad agregada!" });
      } catch (error) {
        res.send(error);
      }
    };

en el script controllers accedemos a los archivos utilizando await req.files();.

¿Cómo accedemos a los campos que no son archivos, como texto?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para acceder a los campos no archivados en una solicitud de formulario multipart usando Insomnia, puedes acceder a ellos utilizando el objeto req.body.

    Por ejemplo, supongamos que tenemos un campo no archivado llamado propertyName. Puedes acceder a él en el script del controlador de la siguiente manera:

    export const addProperty = async function (req, res) {
      try {
        // Accedemos a los archivos de la solicitud de formulario multipart aquí
        const parts = await req.files();
        for await (const data of parts) {
          console.log("*******Accediendo al archivo**********");
          console.log(data.filename); // acceder al nombre del archivo
          ...
        }
    
        // Acceder a los campos no archivados así
        const propertyName = req.body.propertyName;
        console.log('Nombre de la propiedad:', propertyName);
    
        res.status(201).send({ message: "¡Propiedad agregada!" });
      } catch (error) {
        res.send(error);
      }
    };
    

    Puedes acceder a otros campos no archivados de la misma manera, utilizando sus nombres de campo correspondientes en el objeto req.body.

Comments are closed.