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.