Non-Relational Document-Oriented Database
npm install coconutdb
js
npm i coconutdb
`
๐ Quick Start
1. install following NPM packages
- in your existing NodeJS app (using Expres.js)
`js
npm i joi
`
- this joi for validate model inputs
2. On Your NodeJS app
- create file in model folder (student.js)
`js
const Joi = require('joi');
const Model = require('coconutdb');
const studentSchema = Joi.object({
name: Joi.string().required(),
email: Joi.string().email().required(),
enrollmentNo: Joi.string().required(),
});
class StudentModel extends Model {
constructor() {
super('students', studentSchema);
}
}
module.exports = new StudentModel();
`
3. Use of Controller
- create controller called StudentController.js in Controller folder
`js
const studentModel = require('../model/Student');
exports.createStudent = async (req, res) => {
try {
const student = await studentModel.create(req.body);
res.status(201).json(student);
} catch (err) {
res.status(400).json({ error: err.message });
}
};
exports.getAllStudents = async (req, res) => {
try {
const students = await studentModel.findAll();
res.json(students);
} catch (err) {
res.status(500).json({ error: err.message });
}
};
`
- or use can use your own approach for this
4. Creating Route
- in your NodeJS app on routes folder
- create file called studentRoute.js
`js
const express = require('express');
const router = express.Router();
const studentController = require('../controller/studentController');
router.post('/', studentController.createStudent);
router.get('/', studentController.getAllStudents);
module.exports = router;
`
5. Call route in your entry file
`js
const express = require('express');
const app = express();
const studentRoutes = require('./routes/studentRoutes');
app.use(express.json());
app.use('/students', studentRoutes);
app.get('/', (req, res) => {
res.send(Server running on port ${PORT});
});
const PORT = process.env.PORT || 5000;
app.listen(PORT, () => {
console.log(Server running on port ${PORT});
});
``