Add New Todo Endpoint¶
Let's make a POST endpoint responsible for adding our todos to the database.
const express = require('express');
const mongoose = require('mongoose');
const cors = require('cors');
const app = express();
const port = 3001;
app.use(cors({origin: '*'}));
const mongoDBLink = 'mongodb+srv://test_user:Test12345@cluster0.axh68.mongodb.net/todo_list?retryWrites=true&w=majority';
mongoose.connect(mongoDBLink);
const TodoModel = mongoose.model('Todo', new mongoose.Schema({ title: String, is_done: Boolean }));
app.post('/todo', async (req, res) => {
const { title } = req.body;
try {
const todo = new TodoModel({
title: title,
is_done: false,
});
const newTodo = await todo.save();
return res.status(200).json({
todo: newTodo,
})
} catch (e) {
return res.status(500).json({
message: e.message,
})
}
});
app.get('/todos', async (req, res) => {
try {
const todos = await TodoModel.find();
return res.status(200).json({
data: todos,
})
} catch (e) {
return res.status(500).json({
message: e.message,
})
}
});
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`);
});
Our /todo
POST endpoint expects title
to be sent from client side in order to add a new todo to the database.
Read a lot more content with a free account.
Get access to our content and help us create even more great content by supporting us! ππ―
Login here