Bỏ qua để đến nội dung

Express Middleware

Middleware là functions xử lý requests trong pipeline.

import express from "express";
const app = express();
app.use(express.json()); // Parse JSON
app.use(express.urlencoded({ extended: true })); // Parse form data
app.use(express.static("public")); // Serve static files
// Logger middleware
function logger(req, res, next) {
console.log(`${req.method} ${req.url}`);
next();
}
app.use(logger);
function authMiddleware(req, res, next) {
const token = req.headers.authorization?.split(" ")[1];
if (!token) {
return res.status(401).json({ error: "No token provided" });
}
try {
const decoded = jwt.verify(token, process.env.JWT_SECRET);
req.user = decoded;
next();
} catch (error) {
res.status(401).json({ error: "Invalid token" });
}
}
// Protected route
app.get("/profile", authMiddleware, (req, res) => {
res.json({ user: req.user });
});
function errorHandler(err, req, res, next) {
console.error(err);
if (err.name === "ValidationError") {
return res.status(400).json({ error: err.message });
}
res.status(500).json({ error: "Internal server error" });
}
app.use(errorHandler);