Step 12: Refactor

So far, we used Postman to inspect the behavior of our API server. In particular, when we refactored the API or added a new feature, we tried a few endpoints to ensure the changes did not break the API. Unfortunately, this approach to testing is not comprehensive enough. Ideally, you have a complete suite of tests covering all API specifications. To that aim, we will first refactor the API server to access the express app without binding it to a port. We require this change to run and test the app without running the server!

Add an index.js file to the src folder with the following content:

import express from "express"; import bookmarks from "./routes/bookmarks.js"; const app = express(); app.use(express.json()); app.get("/", (req, res) => { res.send("Welcome to the Bookmark API!"); }); app.use(bookmarks); export default app;

Next, overwrite the server.js to contain only the following content:

import app from "./src/index.js"; const PORT = 3000; app.listen(PORT, () => { console.log(`Bookmark API at http://localhost:${PORT}/`); });

Save and commit changes. Moreover, run the server and try the API in Postman to ensure it works as expected.