'Fastify - How to get non-file fields using fastify-multipart
How to access text from request that are non-file fields? (I am using Insomia)
We are able to access file fields by looping through parts. using 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 {
// WE ACCESS FILES OF MULTIPART FORM REQUEST HERE
const parts = await req.files();
for await (const data of parts) {
console.log("*******File being access**********");
console.log(data.filename); // access file name
...
}
// HOW DO WE ACCESS OTHER *NON_FILES* FIELDS?
...
res.status(201).send({ message: "Property Added!." });
} catch (error) {
res.send(error);
}
};
in the controllers script we access files using await req.files();
.
How do we access the fields that are non-file, like text
Solution 1:[1]
There are two ways to get other data it is given in the docs https://github.com/fastify/fastify-multipart
Now you can access name in data.fields
const data = await req.file();
console.log(data.fields.name.value); // virender
- you can attach it to body
fastify.register(require('fastify-multipart'), { attachFieldsToBody: true });
const file = req.body.image1;
const name = req.body.name.value
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | virender nehra |