25/07/2019, 10:06

Nhập môn Nodejs API (Authentication – CRUD) cho người mới học

Trong bài viết này, mình và các bạn sẽ cùng thực hiện Authentication và CRUD của 1 ứng dụng Nodejs API một cách đơn giản, phù hợp với những bạn mới học và mới bắt đầu tiếp cận với nodejs. JavaScript Node.js Postman Express (JS framework) MongoDB (Database) Npm (quản lý ...

Trong bài viết này, mình và các bạn sẽ cùng thực hiện Authentication và CRUD của 1 ứng dụng Nodejs API một cách đơn giản, phù hợp với những bạn mới học và mới bắt đầu tiếp cận với nodejs.

  • JavaScript
  • Node.js
  • Postman
  • Express (JS framework)
  • MongoDB (Database)
  • Npm (quản lý các package)
  • Visual Studio Code (hoặc Sublime Text)

Đầu tiên hãy tạo 1 thư mục để triển:

Đến đây bạn đã có 1 file package.json:

Tiếp theo bạn cần thiết lập Express bằng cách:

File package.json của bạn sẽ có dạng như này:

Rồi, bạn tạo 1 file index.js giống như main ở trong package.json

Trong file index.js sẽ cần thiết lập như sau:

Thử start nhé:

Và mở Postman chạy http://localhost:8797, bạn sẽ có được:

Để server tự động start lại sau khi có sự thay đổi thì bạn cần cài nodemon:

Chạy:

Các package cần dùng:

  • body-parser (parse các request tới server)
  • express (làm cho ứng dụng chạy)
  • nodemon (restart khi có thay đổi xảy ra)
  • mongoose (mô hình hóa object data để đơn giản hóa các tương tác với MongoDB)
  • bcrypt (hashing và salting passwords)
  • express session (xử lý sessions)
  • connect-mongo (lưu trữ session trong MongoDB)
  • dotenv (sử dụng .env)
  • express-validator
  • morgan

3.1. Connect MongoDB

Ở bài này mình sẽ kết nối db ở https://mlab.com/

Bấm CONTINUE và đặt DATABASE NAME là mynodeproject_db

Đến đây, bạn hãy tạo 1 database user, và bạn đc cũng cấp 1 link connect db:

Quay trở lại với project, tạo 1 file .env ngang hàng với index.js

Thay thế <dbuser> và <dbpassword> bằng database user và password bạn vừa tạo.

Rồi, trong file index.js

Chạy lại npm run devstart để kiểm tra kết nối.

Có thể bạn muốn xem:

  Nâng cấp từ Node 6 lên Node 8: Có nên không?

3.2. Register User

3.2.1. Models

Từ thư mục root, tạo src/models/UserModels.js

3.2.2. Controllers

Tại src/controllers/UserControllers.js