1. Cài đặt thư viện Mongoose
Github: https://github.com/Automattic/mongoose
1 |
npm install mongoose |
2. Tạo Connect MongoDB
1.1. Tại main chính: ./src/index.js
1 2 3 4 |
const db = require('./config/db'); //Connect to DB db.connect(); |
1.2. Tạo file connect: ./src/config/db/index.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
const mongoose = require('mongoose'); async function connect() { try { await mongoose.connect('mongodb://localhost:27017/f8_education_dev', { useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true, }); console.log('Connect successfully !!!'); } catch (error) { console.log('Connect failure !!!'); } } module.exports = { connect }; |
-- Nếu connect không thành công, sau 30 giây, sẽ bắn ra lỗi error
3. Tạo Model
-- Thêm thư viện slug (đường dẫn) của mongoose
1 |
npm install mongoose-slug-generator --save |
-- Tạo file: ./src/app/models/Courses.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
const mongoose = require('mongoose'); const slug = require('mongoose-slug-generator'); const mongooseDelete = require('mongoose-delete'); const Schema = mongoose.Schema; const CourseSchema = new Schema( { name: {type: String,require: true,default: '',minlength: 1,maxlength: 255,}, description: { type: String }, image: { type: String }, videoID: { type: String, require: true }, level: { type: String }, slug: { type: String, slug: 'name', unique: true }, }, { timestamps: true, }, ); //Add plugins mongoose.plugin(slug); CourseSchema.plugin(mongooseDelete, { deletedAt: true, overrideMethods: 'all', }); // module.exports = mongoose.model('ModelName', mySchema) module.exports = mongoose.model('Course', CourseSchema); |
-- ModelName: viết ở dạng số nhiều -> mongoose sẽ tự đổi thành chữ viết thường + số nhiều để tương ứng với tên collection trong database
4. Sử dụng Controller kết nối Model, và render ra View
-- Xem phần CRUD