Noor
Noor

Reputation: 89

how to solve Express.js 404 status?

I'm quite new for node.js and express.js. I'm trying to create a login form using MERN.
when I try to access register route I always jumping to 404 status I don't understand what's wrong with my code please help me on this.
I'm following this youtube tutorial -- https://www.youtube.com/watch?v=y7yFXKsMD_U&t=35s
testing these codes using POSTMAN please refer below screenshot.
[![enter image description here][1]][1]
server.js | File

const express = require("express");
const morgon = require("morgan");
const bodyParser = require("body-parser");
const cors = require("cors");

const app = express();

require("dotenv").config({
  path: "./config/config.env",
});

app.use(bodyParser.json());

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

  app.use(morgon("dev"));
}

// Load all routes
const authRouter = require("./routers/auth.route");

// use routes
app.use("/api/", authRouter);

app.use((req, res, next) => {
  res.status(404).json({
    success: false,
    message: "Page Not Founded",
  });
});

const PORT = process.env.PORT;

app.listen(PORT, () => {
  console.log(`App PORT up on port ${PORT}`);
});

config.env | File

PORT = 5000
NODE_ENV = development
CLIENT_URL = http://localhost:3000

auth.route.js | Route File

const express = require("express");

const router = express.Router();

// Load register Controller
const { registerController } = require("../controller/auth.controller.js");

// register Router path
router.post("register", registerController);

module.exports = router;

auth.controller.js | Controller File

exports.registerController = (req, res) => {
    const {name, email, password} = req.body
    console.log(name, email, password)
}

Upvotes: 0

Views: 137

Answers (1)

Steven Lu
Steven Lu

Reputation: 2180

In your router path, you need a / in your register route.

router.post("/register", registerController);

You also do not need a trailing slash in your API route.

app.use("/api", authRouter);

Upvotes: 1

Related Questions