Validasi Input — Node.js

Jangan pernah percaya input dari user! Selalu validasi sebelum memproses. Validasi manual: app.post("/users", (req, res) => { const { name, email, age } =…

Jangan pernah percaya input dari user! Selalu validasi sebelum memproses.

Validasi manual:

app.post("/users", (req, res) => {
  const { name, email, age } = req.body;
  const errors = [];

  if (!name || typeof name !== "string") {
    errors.push("Name is required and must be a string");
  }
  if (!email || !email.includes("@")) {
    errors.push("Valid email is required");
  }
  if (age !== undefined && (typeof age !== "number" || age < 0)) {
    errors.push("Age must be a positive number");
  }

  if (errors.length > 0) {
    return res.status(400).json({ errors });
  }

  // Data valid — proses...
  res.status(201).json({ name, email, age });
});

Pattern: validation middleware

function validateUser(req, res, next) {
  const { name, email } = req.body;
  if (!name) return res.status(400).json({ error: "Name required" });
  if (!email) return res.status(400).json({ error: "Email required" });
  next();
}

app.post("/users", validateUser, (req, res) => {
  // Di sini kita tahu data sudah valid
  res.status(201).json(req.body);
});

Tips validasi:

Yang akan kamu pelajari