Software used to provide non-default services for other software. Most of the time, they are libraries that allow for communication of different types or connectivity between applications.
Examples
Creating Middleware
food.js
const food = "burger";
module.exports = food;
Using Middleware
In ExpressJS,
const foodmodule = require("food")
app.use(foodmodule)
allows the use of communication via JSON files