-
Create
/helpers/utils.helper.js
:"use strict"; utilsHelper = {}; utilsHelper.sendResponse = (res, status, success, data, errors, message) => { const response = {}; if (success) response.success = success; if (data) response.data = data; if (errors) response.errors = errors; if (message) response.message = message; res.status(status).json(response); }; module.exports = utilsHelper;
-
In
app.js
, add:+const utilsHelper = require("./helpers/utils.helper"); const app = express();
-
In
routes/
, deleteusers.js
. Inapp.js
,remove-const usersRouter = require("./routes/users"); ... -app.use("/users", usersRouter);
-
Create
routes/message.api.js
:const express = require("express"); const router = express.Router(); /** * @route GET api/messages?page=1&limit=10 * @description Get messages with pagination * @access Public */ router.get("/", function (req, res, next) { res.send({ status: "ok", data: "Cs Mail" }); }); module.exports = router;
-
In
routes/index.js
, replace everything with:const express = require("express"); const router = express.Router(); // messageAPI const messageAPI = require("./message.api"); router.use("/messages", messageAPI); module.exports = router;
In
app.js
, change:-app.use("/", indexRouter); +app.use("/api", indexRouter);
-
Import
cors
:const logger = require("morgan"); +const cors = require("cors") ... app.use(cookieParser()); +app.use(cors());
-
Connect to DB
- In
.env
, add
MONGODB_URI='mongodb://localhost:27017/social_message'
- In
app.js
:
const mongoose = require('mongoose') const mongoURI = process.env.MONGODB_URI ... app.use(express.static(path.join(__dirname, "public"))); /* DB Connections */ mongoose .connect(mongoURI, { // some options to deal with deprecated warning useCreateIndex: true, useNewUrlParser: true, useFindAndModify: false, useUnifiedTopology: true, }) .then(() => console.log(`Mongoose connected to ${mongoURI}`)) .catch((err) => console.log(err));
- In
-
Error Handling: In
app.js
, add/* Initialize Routes */ app.use("/api", indexRouter); // catch 404 and forard to error handler app.use((req, res, next) => { const err = new Error("404 - Resource not found"); next(err); }); /* Initialize Error Handling */ app.use((err, req, res, next) => { console.log("ERROR", err); const statusCode = err.message.split(" - ")[0]; const message = err.message.split(" - ")[1]; if (!isNaN(statusCode)) { utilsHelper.sendResponse(res, statusCode, false, null, { message }, null); } else { utilsHelper.sendResponse( res, 500, false, null, { message: err.message }, "Internal Server Error" ); } }); module.exports = app;
- Run
npm run dev
in the terminal - Open your browser and test
http://localhost:5000/api/messages
: - And test
localhost:5000\whatever
:
Good job! Back to instructions