I’m new to MERN stack. I built some MERN app where I didn’t face this type of error. But recently I am making a simple todo app and I face this error when creating a user.
Please help me . Thanks in advance.
Here is my code:
index.js
const express = require("express");
const app = express();
const mongoose = require("mongoose");
const dotenv = require("dotenv");
const helmet = require("helmet");
const morgan = require("morgan");
const userRoutes = require("./routes/userRoutes");
dotenv.config();
mongoose.connect(
process.env.MONGO_URL,
{
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true,
},
() => {
console.log("mongdb is connected");
}
);
// middleware
app.use(express.json());
app.use(helmet());
app.use(morgan("common"));
//routes
app.use("/app/v1/user", userRoutes);
app.listen(8000, () => {
console.log("server is up and running");
});
User.js
const mongoose = require("mongoose");
const UserSchema = new mongoose.Schema(
{
username: {
type: String,
require: true,
min: 3,
max: 20,
unique: true,
},
email: {
type: String,
required: true,
unique: true,
},
password: {
type: String,
required: true,
min: 6,
},
img: {
type: String,
required: true,
},
},
{ timestamps: true }
);
module.exports = mongoose.model("User", UserSchema);
userRoutes.js
const router = require("express").Router();
const User = require("../models/User");
router.get("/register", async (req, res) => {
try {
const newUser = new User({
username: "tahmid",
email: "tahmid@gmail.com",
password: "123456",
img: "https://avatars.dicebear.com/api/human/1.svg",
});
const user = await newUser.save();
res.status(200).json(user);
} catch (err) {
console.log(err);
res.status(500).json(err);
}
});
module.exports = router;
.env
MONGO_URL = mongodb+srv://myUsername:myPassword@cluster0.lpjsb.mongodb.net/todoDB?retryWrites=true&w=majority
package.json
{
"name": "todo-api",
"version": "1.0.0",
"description": "its a todo rest api",
"main": "index.js",
"scripts": {
"start": "nodemon index.js"
},
"author": "tahmid",
"license": "ISC",
"dependencies": {
"dotenv": "^14.3.2",
"express": "^4.17.2",
"helmet": "^5.0.2",
"mongoose": "^6.1.8",
"morgan": "^1.10.0"
}
}
Screenshot of my terminal: