Bu çalışmamızda SmartEdu projemize ait ilk modeli oluşturacağız. Oluşturduğumuz modeller yardımıyla veritabanımızda "document" larımızı oluşturacağız. Modeller de ilgili
Schema yapısını kendisine şablon olarak alacak. Model dosyasını oluşturmak için ODM aracımınz olan mongoose paketini indirelim.
npm i mongoose
Veritabanı bağlantısını kuralım:
mongoose.connect('mongodb://localhost/smartedu-db', {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
useCreateIndex: true
}).then(()=> {
console.log('DB Connected Successfully')
});Şimdi kurs model dosyamızı oluşturabiliriz.
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const CourseSchema = new Schema({
name: {
type: String,
unique: true,
required: true,
},
description: {
type: String,
required: true,
trim: true,
},
createdAt: {
type: Date,
default: Date.now,
},
});
const Course = mongoose.model('Course', CourseSchema);
module.exports = Course;Bu oluşturduğumuz modeli baz alarak, yeni kurs oluşturma fonksiyonunun olduğu course.controller.js dosyasını oluşturalım.
const Course = require('../models/Course');
exports.createCourse = async (req, res) => {
const course = await Course.create(req.body);
try {
res.status(201).json({
status: 'success',
course,
});
} catch {
res.status(400).json({
status: 'fail',
error,
});
}
};İlgili kurs oluşturma sayfamız hazır olmadığı için burada çıktı olarak şimdilik bir JSON cevabı alacağız. Sırada ise bu controller fonksiyonunu çalıştıracak
yönlendirmeyi yapmak için oluşturacağımız courseRoute.js var.
const express = require('express')
const courseController = require('../controllers/courseController');
const router = express.Router();
router.route('/').post(courseController.createCourse); // http://localhost:3000/courses
module.exports = router;app.js dosyasında bu route ile ilgili yönlendirme ise:
app.use('/courses', courseRoute);