[Fixed] Postman keeps loading on sending POST request to an express route

Issue

I created a route and controller for my sign up.

Here’s my route:

const express = require("express");
const router = express.Router();
const { signup } = require("../../controllers/auth");

router.post("/signup", signup);

module.exports = router;

And here’s my controller:

exports.signup = () => (req, res) => {
  const { name, email, password } = req.body;
  res.json({
    user: { name, email, password },
  });
};

Inside my server.js file I register both:

const express = require("express");
const morgan = require("morgan");
const cookieParser = require("cookie-parser");
const cors = require("cors");
const mongoose = require("mongoose");
require("dotenv").config();

// routes
const blogRoutes = require("./routes/blog");
const authRoutes = require("./routes/auth");

// app
const app = express();

// db
mongoose
  .connect(process.env.DATABASE, { useNewUrlParser: true, useUnifiedTopology: true })
  .then(() => console.log("DB connected!"));

// middlewares
app.use(morgan("dev"));
app.use(express.urlencoded({ extended: true }));
app.use(express.json());
app.use(cookieParser());

// cors
if (process.env.NODE_ENV == "development") {
  app.use(cors({ origin: `${process.env.CLIENT_URL}` }));
}

// routes middleware
app.use("/api", blogRoutes);
app.use("/api", authRoutes);

// port
const port = process.env.PORT || 8000;
app.listen(port, () => {
  console.log(`Server is running on port ${port}`);
});

Now on my POSTMAN, I tried to put the data using POST http://localhost:8000/api/signup with the header and raw setup right.

{
    "name": "SyRyan",
    "email": "[email protected]",
    "password": "brace1010"
}

The database is connected but the postman takes forever to load the json request back. Am I making any mistakes here? Please help!

Solution

I think that the problem is that signup is a function that returns a function, but it should be just a function that receives req & res as parameters:

exports.signup = (req, res) => {
  const { name, email, password } = req.body;
  res.json({
    user: { name, email, password },
  });
};

Leave a Reply

(*) Required, Your email will not be published