POST Request error on Postman. Register New User

41 Views Asked by At

auth.js file

    const router = require("express").Router();
    const User = require("../models/User");

    //REGISTER
     router.post("/register", async (req,res) => {
       const newUser = new User({
        username: req.body.username,
        email: req.body.email,
        password: req.body.password,

    });

    try{
        const savedUser = await newUser.save();
        res.status(201).json(savedUser);
    } catch(err) {
        res.status(500).json(err);
    }
}); 

module.exports = router;

index.js file

const express = require("express");
const { default: mongoose } = require("mongoose");
const dotenv = require("dotenv");
const userRoute = require("./routes/user");
const authRoute = require("./routes/auth");

dotenv.config();

const app = express();

mongoose
 .connect(
    process.env.MONGO_URL    //hidden connection key
 )
.then(() => console.log("DB Connection Successful!") )
.catch((err) => {
    console.log(err)
});

app.use(express.json());            //to read json 
post req from postman
app.use("/api/users", userRoute);        //whenever we 
go to api/users, app will use userRoute which is 
imported from routes/user.js
app.use("/api/auth", authRoute);

app.listen(5000, () => {
  console.log("Backend server is running!");
});

POSTMAN entry:

{ "username": "mamik", "email": "[email protected]", "password":"12345" }

POSTMAN error:

{ "index": 0, "code": 11000, "keyPattern": { "username": 1 }, "keyValue": { "username": "mamik" } }

It is showing 500 Internal server error. I am not sure if it is a database connection problem or some typo.


EDIT:

User:

const mongoose = require("mongoose"); 
const UserSchema = new mongoose.Schema({ 
  username: {type: String, required: true, unique: true}, 
  email: {type: String, required: true, unique: true}, 
  password: {type: String, required: true}, 
  isAdmin: { type: Boolean, default: false, }, 
}, {timestamps: true} );
module.exports = mongoose.model("User", UserSchema);
0

There are 0 best solutions below