const express = require("express");
const app = express();
//load config from env file
require("dotenv").config();
const PORT = process.env.PORT || 4000;
//middleware to parse json request body
app.use(express.json());
//import routes for TODO API
const todoRoutes = require("./routes/todos");
//mount the todo API routes
app.use("/api/v1", todoRoutes);
//start server
app.listen(PORT, () => {
console.log(`Server started successfully at ${PORT}`);
})
//connect to the database
const dbConnect = require("./config/database");
dbConnect();
//default Route
app.get("/", (req,res) => {
res.send(`<h1> This is HOMEPAGE baby</h1>`);
})
**todos.js**`models folder`
const express = require("express");
const router = express.Router();
//import controller
const {createTodo} = require("../controllers/createTodo");
//define APi routes
router.post("/createTodo", createTodo);
module.exports = router;
**createTodo.js**`controllers folder`
//import th model
const Todo = require("../models/Todo");
//define route handler
exports.createTodo = async(req,res) => {
try {
//extract title and description from reauest body
const {title,description} = req.body;
//create a new Todo Obj and insert in DB
const response = await Todo.create({title,description});
//send a json response with a success flag
res.status(200).json(
{
success:true,
data:response,
message:'Entry Created Successfully'
}
);
}
catch(err) {
console.error(err);
console.log(err);
res.status(500)
.json({
success:false,
data:"internal server error",
message:err.message,
})
}
}
**models**`routes folder`
const mongoose = require("mongoose");
const todoSchema = new mongoose.Schema(
{
title:{
type:String,
required:true,
maxLength:50,
},
description: {
type:String,
required:true,
maxLength:50,
},
createdAt:{
type:Date,
required:true,
default:Date.now(),
},
updatedAt:{
type:Date,
required:true,
default:Date.now(),
}
}
);
module.exports = mongoose.model("Todo", todoSchema);
**
database.js**`config folder`
const mongoose = require("mongoose");
require("dotenv").config();
const dbConnect = () => {
mongoose.connect(process.env.DATABASE_URL)
.then(() => console.log("DB ka Connection is Successful"))
.catch( (error) => {
console.log("Issue in DB Connection");
console.error(error.message);
process.exit(1);
} );
}
module.exports = dbConnect;
here db connected but i am unable to add the data
after entering url and data in postman** it shows me the below error
Cannot GET /api/v1/createTodo error typically indicates that the route i am trying to access is not defined
after entering url and data in postman** it shows me the below error
Cannot GET /api/v1/createTodo error typically indicates that the route i am trying to access is not defined
Cannot GET /api/v1/createTodo
Harshada patil is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.