Multer None Method: Handling Only Text Data

Multer is primarily used for file uploads, but it also provides a way to handle only text form data using the upload.none() method.

What is upload.none() in Multer?

upload.none() is a Multer middleware that:

Example:

const multer = require("multer");
const upload = multer();

app.post("/submit", upload.none(), (req, res) => {
  res.json(req.body);
});

When should I use Multer without file uploads?

Use upload.none() when:

Common scenarios:

How to handle only text form data with Multer?

With upload.none(), all form fields are available in:

req.body

Example:

app.post("/submit", upload.none(), (req, res) => {
  const { name, email } = req.body;

  res.json({
    message: "Form received",
    name,
    email,
  });
});

What happens if a file is sent with upload.none()?

If a file is included in the request:

Example handling:

app.post("/submit", (req, res) => {
  upload.none()(req, res, function (err) {
    if (err) {
      return res.status(400).json({
        message: "File uploads are not allowed",
        error: err.message,
      });
    }

    res.json(req.body);
  });
});

Complete Example

const express = require("express");
const multer = require("multer");

const app = express();

const upload = multer();

app.post("/submit", upload.none(), (req, res) => {
  res.json({
    message: "Text data received successfully",
    data: req.body,
  });
});

app.listen(3000, () => {
  console.log("Server running on port 3000");
});

Key Takeaways