Course Node.js Backend Development

Building a REST API

Express & APIs Preview

A complete API

Get all

app.get("/api/courses", async (req, res, next) => {\n  try {\n    const [rows] = await db.query("SELECT * FROM courses");\n    res.json({ courses: rows });\n  } catch (err) {\n    next(err);\n  }\n});

Get one

app.get("/api/courses/:id", async (req, res, next) => {\n  const [rows] = await db.query("SELECT * FROM courses WHERE id = ?", [req.params.id]);\n  if (rows.length === 0) return res.status(404).json({ error: "Not found" });\n  res.json(rows[0]);\n});

Create

app.post("/api/courses", async (req, res, next) => {\n  const { title, price } = req.body;\n  if (!title || price === undefined) {\n    return res.status(422).json({ error: "title and price required" });\n  }\n  const [result] = await db.query(\n    "INSERT INTO courses (title, price) VALUES (?, ?)",\n    [title, price]\n  );\n  res.status(201).json({ id: result.insertId });\n});

Update & delete

app.put("/api/courses/:id", async (req, res) => {\n  await db.query("UPDATE courses SET title = ? WHERE id = ?", [req.body.title, req.params.id]);\n  res.json({ ok: true });\n});\n\napp.delete("/api/courses/:id", async (req, res) => {\n  await db.query("DELETE FROM courses WHERE id = ?", [req.params.id]);\n  res.json({ ok: true });\n});
Tip: Never concatenate values into SQL — use ? placeholders. This is Node's equivalent of PHP prepared statements.

This is a free preview lesson

Enroll in the Node.js Backend Development to unlock every lesson, lesson PDF guides, quizzes and your certificate - and start creating your own pieces today.


Discussion

Free preview lesson