Reputation: 2507
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
Upvotes: 3
Views: 6551
Reputation: 612
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
fastify.register(require('fastify-multipart'), { attachFieldsToBody: true });
const file = req.body.image1;
const name = req.body.name.value
Upvotes: 12