peri hokiperihokiclarustologisticsrimashaop.comangelpaintingtools.co.invrjanaenergies.comgates of olympus perihoki jadi mesin uang paling gacortrik main baccarat perihoki ala pro bikin pemula jadi jutawanpantang pulang sebelum jackpot main dadu sicbo perihokipgsoft mahjong ways 2 muncul scatter merah tiap spin perihokicara menciptakan akun perihokigacor mahjong wins 3jackpot kembar mahjong wins 3 abc1131cara menang stabil rtp mahjong ways abc1131bu nurlina menang 197 juta mahjong ways 2mahasiswa cuan 421 juta karena pola mahjongpemilik warung menang 128 juta mahjong wins 3strategi bravy erika mahjong abc1131 terungkappemuda jambi taklukkan mahjong wins 3penjual jamu menang besar mahjong wins 5pemuda kampung raup 180 juta mahjong wayskisah inspiratif petani mahjong ways keberhasilanmahasiswa menang 92 juta mahjong waysmodal warung kopi bang ojak sukses mahjong waystanpa modal maxwin mahjong wins 3 strategibocoran mahjong ways spin kombinasicara bermain mahjong untuk meraih keberuntungankeajaiban mahjong kasir indomaret sukses beli tanahmeraup keuntungan maksimal di mahjong winsid rahasia scatter hitamid pola scatterid jackpot mahjong waysid spin mahjong winsid tips jitu mahjongrahasia kemenangan mahjong ways spin slow

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 282

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: session_set_cookie_params(): Cannot change session cookie parameters when headers already sent

Filename: Session/Session.php

Line Number: 294

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 304

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 314

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 315

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 316

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 317

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: Session/Session.php

Line Number: 375

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time

Filename: drivers/Session_files_driver.php

Line Number: 108

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: session_set_save_handler(): Cannot change save handler when headers already sent

Filename: Session/Session.php

Line Number: 110

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: session_start(): Cannot start session when headers already sent

Filename: Session/Session.php

Line Number: 143

Backtrace:

File: /home/blogchuabenh/domains/freetuts.net/public_html/site/controllers/Main_controller.php
Line: 10
Function: __construct

File: /home/blogchuabenh/domains/freetuts.net/public_html/sources/index.php
Line: 299
Function: require_once

File: /home/blogchuabenh/domains/freetuts.net/public_html/index.php
Line: 26
Function: require_once

Mongoose trong NodeJS - Freetuts
CĂN BẢN
SERVER
MYSQL
MONGODB
MODULE
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Mongoose trong NodeJS

Trong bài viết này chúng mình sẽ cùng nhau đi tìm hiểu về Mongoose ở những phần cơ bản nhất, đây là tiền đề cho những bài viết tiếp theo trong chương. Bài viết sẽ tập trung những phần cơ bản nhất, về các khái niệm về Schema, Model, và các methods trong Mongoose, để những phần ở bài tiếp theo sẽ dễ dàng nắm bắt hơn với các bạn.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Khi bạn đã xác định các SchemasModel của mình, Mongoose sẽ bao gồm nhiều hàm khác nhau cho phép bạn xác thực, lưu, xóa và truy vấn dữ liệu của bạn bằng các hàm MongoDB phổ biến.

1. Làm quen với Mongoose

Trong bài trước mình cũng đã giới thiệu về cách cài đặt module mongoose chi tiết, bạn có thể xem và tham khảo bài viết để tìm hiểu kĩ hơn nhé. Trước tiên chúng ta sẽ cài đặt mongoose bằng cách mở terminal và gõ dòng lệnh:

npm install --save mongoose

Thực hiện kết nối với MongoDB

Bước tiếp theo, chúng ta sẽ tiến hành kết nối với MongoDB, ở đây mình chọn file app.js làm file khởi đầu của dự án, ở đây mình sẽ connect với mongoDB như sau:

Bài viết này được đăng tại [free tuts .net]

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/freetuts', {useNewUrlParser: true, useNewUrlParser: true,  useUnifiedTopology: true});

Chúng ta có một kết nối đang chờ xử lý đến cơ sở dữ liệu có tên freetuts đang chạy trên localhost. Bây giờ, cần bắt được sự kiện nếu chúng ta kết nối thành công hoặc nếu xảy ra lỗi kết nối:

var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
  // we're connected!
});

Khi kết nối của chúng ta đã thành công, một callback function sẽ được gọi. Để cho ngắn gọn, mình sẽ thực hiện tất cả các đoạn mã thực thi bên dưới ở trong callback function này.

Schemas

Để tìm hiểu về mongoose chúng ta nên bắt đầu với một Schema. Nó chịu trách nhiệm cho việc các collection của chúng ta sẽ có hình dạng ra sao, tạo ra các khung khuân mẫu của dữ liệu, thêm vào đó nó còn cho phép chúng ta kiểm tra dữ liệu có đúng kiểu vốn có của chúng hay không ?

Ở đây mình có một Schemas, nó sẽ thể hiện các document trong collection chỉ định sẽ có cấu trúc như thế nào?

  var mongoose = require('mongoose');
  var Schema = mongoose.Schema;

  var blogSchema = new Schema({
    title:  String,
    author: String,
    body:   String,
    hidden: Boolean,
  });

Về chi tiết các phần này mình sẽ giới thiệu trong bài tiếp theo bởi phần này có rất nhiều phần chúng ta cần biết, trong phạm vi bài viết làm quen, mình sẽ không đề cập quá sâu. Bạn có thể hiểu một cách ngắn gọn rằng khi khởi tạo new Schemas là bạn đang khởi tạo một khuân mẫu của collection giống như trong các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS).

Ngoài ra, bạn còn có thể khởi tạo các method cho Schema sau khi tạo bằng cách sử dụng :

  blogSchema.methods.showMessages = function() {
    console.log(`Đã thêm bài viết mới có tên "${this.title}"`)
  }

Model

Sau khi khởi tạo các Schemas chúng ta sẽ tiến hành "nhét" chúng vào một Model. Model là một lớp giúp xây dựng các documents, nó là sẽ xây dựng các documents từ các Schema được chỉ định trước đó. Các Model chịu trách nhiệm tạo và đọc các document từ cơ sở dữ liệu MongoDB.

Câu lệnh bên duới mình đã thêm Schema vừa khởi tạo phía trên vào trong Model có tên Blog:

var Blog = mongoose.model('Blog', blogSchema);

Bây giờ, mình sẽ tiến hành thêm một document vào trong collections có tên blogs (khi tạo model thì collections sẽ được tạo và tự động thêm 's' và format lại).

  var Blog = mongoose.model('Blog', blogSchema);
  var dataInsert = {
    title:  'Lập trình NodeJS căn bản', 
    author: 'Freetuts.net',
    body:   'Nội dung lập trình NodeJS căn bản',
    hidden: false,
  }
  var blogCollections = new Blog(dataInsert);
  blogCollections.save(function (err, data) {
    if (err) return console.error(err);
    console.log(data) 
    blogCollections.showMessages()
  });

Đây là phần khởi đầu nhanh chóng cho việc làm quen với Mongoose. Chúng ta đã tạo ra một lược đồ giúp quá trình tìm hiểu sau đó dễ dàng hơn như: tạo khuân mẫu bằng Schemas, thêm phương thức trong Schemas, thêm document bằng Modal,...

2. Hello Mongoose

Cuối cùng, chúng ta sẽ có một file app.js hoàn chỉnh dựa vào các phần mình giới thiệu ở trên như sau:

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/freetuts', {useNewUrlParser: true, useNewUrlParser: true,  useUnifiedTopology: true});

var db = mongoose.connection;
//Bắt sự kiện error
db.on('error', function(err) {
  if (err) console.log(err)
});
//Bắt sự kiện open
db.once('open', function() {
  //Khởi tạo Schema
  var Schema = mongoose.Schema;
  var blogSchema = new Schema({
    title:  String, // String is shorthand for {type: String}
    author: String,
    body:   String,
    hidden: Boolean
  });
  blogSchema.methods.callTitle = function() {
    console.log(`Đã thêm bài viết mới có tên "${this.title}"`)
  }
  var Blog = mongoose.model('Blog', blogSchema);

  var dataInsert = {
    title:  'Lập trình NodeJS căn bản', 
    author: 'Freetuts.net',
    body:   'Nội dung lập trình NodeJS căn bản',
    hidden: false,
  }
  var blogCollections = new Blog(dataInsert);
  blogCollections.save(function (err, data) {
    if (err) return console.error(err);
    console.log(data)
    blogCollections.showMessages()
  });
});

Tiến hành khởi chạy file bằng cách mở terminal và gõ dòng lệnh:

node app

nodejs mongoose 1 png

Lúc này trong cơ sỡ dữ liệu MongoseDB chúng ta sẽ thấy một collections có tên là blogs và trong đó sẽ có document đã thêm trước đó.

nodejs mongoose 2 png

Rất mong bài viết sẽ giúp ích cho bạn trong quá trình làm việc với MongoDB. Cảm ơn bạn quan tâm đến bài viết này !

Cùng chuyên mục:

Cách gửi mail trong NodeJS có file đính kèm

Cách gửi mail trong NodeJS có file đính kèm

Crawl dữ liệu website bằng NodeJS cơ bản

Crawl dữ liệu website bằng NodeJS cơ bản

CORS là gì ? Xử lý CORS trong NodeJS

CORS là gì ? Xử lý CORS trong NodeJS

Chắc hẳn trong quá trình xử lý các request tới server thì một vài trường…

Xử lý form trong Express

Xử lý form trong Express

Xây dựng URL trong Express

Xây dựng URL trong Express

Trong bài viết này chúng ta sẽ cùng nhau đi tìm hiểu về cách xây…

Populate trong Mongoose

Populate trong Mongoose

Error Handling & Debugging trong Socket.io

Error Handling & Debugging trong Socket.io

Namespaces & Rooms trong Socket.io

Namespaces & Rooms trong Socket.io

Middleware trong Mongoose

Middleware trong Mongoose

Create / Read / Update / Delete trong Mongoose

Create / Read / Update / Delete trong Mongoose

Validation trong Mongoose

Validation trong Mongoose

Subdocuments trong Mongooose

Subdocuments trong Mongooose

Documents trong Mongoose

Documents trong Mongoose

Trong bài viết này chúng ta sẽ tìm hiểu về documents trong Mongoose

Models trong Mongoose

Models trong Mongoose

SchemaTypes trong Mongoose

SchemaTypes trong Mongoose

Schemas trong Mongoose

Schemas trong Mongoose

Làm việc với Table MySQL sử dụng Nodejs

Làm việc với Table MySQL sử dụng Nodejs

Kết nối với MongoDB trong NodeJS

Kết nối với MongoDB trong NodeJS

Giới thiệu MongoDB trong NodeJS

Giới thiệu MongoDB trong NodeJS

Insert / Update / Delete / Select MySQL trong NodeJS

Insert / Update / Delete / Select MySQL trong NodeJS

Top