How to use a middleware in NodeJS if you are using controllers? How to use middleware only for some specific request?
app.js
const express = require("express");
const { User } = require("./models/user");
const morgan = require("morgan");
const dotenv = require("dotenv").config();
const helmet = require("helmet");
const app = express();
const userRoute = require("./routes/user");
const authRoute = require("./routes/auth");
app.use(express.json());
app.use(helmet());
app.use(morgan("common"));
app.use("/api/user", userRoute);
app.use("/api/auth", authRoute);
app.listen({ port: 7999 }, () => {
console.log("Up and running");
});
project/controllers/auth.js
const verifyToken = async (req, res, next) => {
const token = req.header("auth-token");
if (!token) return res.status(403).send("NOT ALLOWED");
try {
const verified = jwt.verify(token, process.env.TOKEN_SECRET);
req.user = verified;
next();
} catch (error) {
return res.status(500).json("INVALID TOKEN");
}
};