Dự án cấu trúc Nodejs GitHub

Chúng tôi, với tư cách là cộng đồng đứng sau dự án này, cam kết làm cho việc tham gia vào dự án này trở thành một trải nghiệm không bị quấy rối cho tất cả mọi người, bất kể trình độ chuyên môn, giới tính, nhận dạng và biểu hiện giới tính, khuynh hướng tình dục, khuyết tật, ngoại hình, kích thước cơ thể,

Xem quy tắc ứng xử để biết thêm chi tiết

Kích thước Byte. dự án truyền hình

Kho lưu trữ này là một phần của VideoCast JavaScript có kích thước byte

Đây là tập hợp các đoạn ghi hình ngắn (khoảng mười phút) về JavaScript và các công nghệ liên quan

Nút. Cấu trúc thư mục js

Lấy cảm hứng từ Bulletproof Node. js

Phát triển

Lần đầu tiên, bạn sẽ cần phải chạy

npm install

Sau đó, chỉ cần khởi động máy chủ với

npm run start

Hoặc bắt đầu phát triển bằng Nodemon

npm run dev

Đóng góp

Mọi phản hồi và đóng góp đều được chào đón

Cam kết này không thuộc về bất kỳ nhánh nào trên kho lưu trữ này và có thể thuộc về một nhánh bên ngoài kho lưu trữ

Bạn không thể thực hiện hành động đó vào lúc này

Bạn đã đăng nhập bằng tab hoặc cửa sổ khác. Tải lại để làm mới phiên của bạn. Bạn đã đăng xuất trong một tab hoặc cửa sổ khác. Tải lại để làm mới phiên của bạn

Cấu trúc dự án NodeJS

Bắt đầu

Cài đặt nút

$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
$ nvm install 10.5.0
$ nvm use 10.5.0

Sao chép repo này (và cd vào nó)

$ git clone https://github.com/kapilbarad/nodejs-project-structure.git
$ cd nodejs-project-structure

Cài đặt phụ thuộc

$ npm install

Tải vars env

cp .env-example .env

Nhập các biến môi trường mong muốn trong

npm run start
0

Khởi động máy chủ

$ npm run start

Đây là cấu trúc dự án cơ bản để giúp bạn bắt đầu xây dựng API web RESTful của riêng mình (dành cho Android, IOS hoặc khung JavaScript) bằng cách sử dụng Express framework và MongoDB với các thực tiễn cấu trúc tốt dựa trên Kiến trúc MVC sạch

Đặc trưng
  • Cơ bản của Express. định tuyến, phần mềm trung gian, gửi phản hồi và hơn thế nữa
  • Cơ bản của Mongoose. Mô hình dữ liệu, xác thực dữ liệu và phần mềm trung gian
  • API RESTful bao gồm phân trang, sắp xếp và giới hạn các trường
  • Thao tác CRUD với MongoDB
  • Bảo vệ. mã hóa, vệ sinh và hơn thế nữa
  • Xác thực với JWT. đăng nhập và đăng ký
  • Ủy quyền (Vai trò và quyền của người dùng)
  • xử lý lỗi
  • Biến môi trường
  • xử lý lỗi bên ngoài Express
  • Bắt ngoại lệ chưa được bắt
Cấu trúc dự án
  • người phục vụ. js. Chịu trách nhiệm kết nối MongoDB và khởi động máy chủ
  • ứng dụng. js. Định cấu hình mọi thứ liên quan đến ứng dụng Express
  • cấu hình. env. cho các biến môi trường
  • tuyến đường -> userRoutes. js. Mục tiêu của tuyến đường là hướng dẫn yêu cầu đến chức năng xử lý chính xác sẽ nằm trong một trong các bộ điều khiển
  • bộ điều khiển -> userController. js. Xử lý yêu cầu ứng dụng, tương tác với các mô hình và gửi lại phản hồi cho khách hàng
  • mô hình -> mô hình người dùng. js. (Logic nghiệp vụ) liên quan đến quy tắc nghiệp vụ, cách thức hoạt động của nghiệp vụ và nhu cầu nghiệp vụ (Tạo người dùng mới trong cơ sở dữ liệu, kiểm tra xem mật khẩu người dùng có đúng không, xác thực dữ liệu đầu vào của người dùng)

Ý tưởng là sử dụng nguyên tắc phân tách các mối quan tâm để di chuyển logic nghiệp vụ ra khỏi nút. js API định tuyến

Đừng đặt logic kinh doanh của bạn bên trong bộ điều khiển

Bạn có thể bị cám dỗ để chỉ sử dụng express. js để lưu trữ logic nghiệp vụ của chúng tôi cho ứng dụng của bạn, nhưng đó không phải là cách tốt

Sử dụng một lớp dịch vụ cho logic nghiệp vụ của bạn, nó sẽ rất tốt

Cấu trúc

NodeJS/Javascript có một đặc điểm mà một số người thấy hữu ích, nhưng nó có thể khiến bạn đi sâu vào sai hướng và đây là quyền tự do lựa chọn cách bạn muốn cấu trúc dự án của mình (Hãy nhớ rằng NodeJS không phải là một framework như Rails hoặc. Bọc lưới). Chỉ có kinh nghiệm làm việc trong các dự án khác nhau mới cho phép bạn xác định cấu trúc tốt nhất cho mọi tình huống

Gần đây, tôi bắt đầu làm việc với một dự án mới và vấn đề mà tôi gặp phải là dành nhiều thời gian để xây dựng cấu trúc dự án dựa trên các phương pháp hay nhất, đặc biệt là với JavaScript/NodeJS có rất nhiều cách tiếp cận. Tôi không thể tìm thấy bất kỳ nơi nào tổng hợp các phương pháp hay nhất vào một dự án duy nhất, vì vậy tôi quyết định tự mình thực hiện dự án đó

Trong kho lưu trữ này, tôi không nhằm mục đích cung cấp bất kỳ giải pháp tối ưu nào vì mỗi dự án đều có nhu cầu riêng nhưng để giúp bất kỳ ai bắt đầu với dự án NodeJS và không thể tìm thấy bất kỳ nguồn cảm hứng nào về cách bắt đầu xây dựng dự án để thực hiện dự án này

Một số thực hành tốt được tuân theo trong kho lưu trữ này

  • Hỗ trợ
    npm run start
    
    1 &
    npm run start
    
    2
  • Triển khai bộ ghi WinstonJS
  • Xử lý lỗi
  • Hỗ trợ phần tiếp theo
  • Xác thực Joi cơ bản
  • Đặc tả API mở được triển khai thông qua swagger-jsdocs và swagger-ui
  • Triển khai JWT
  • Biến môi trường để giữ giá trị cấu hình. tập tin env
  • OOP (Lập trình hướng đối tượng)
  • Tôi đã tuân theo tiêu chuẩn mã hóa airbnb với eslint, để giúp mọi thứ đi đúng hướng

Làm thế nào để bắt đầu dự án

  • Đầu tiên, bạn sao chép dự án bằng cách sử dụng lệnh sau.
    ______13
  • Cài đặt nút phiên bản 8. 11. 0 hoặc sử dụng nvm để hạ cấp phiên bản nút của bạn
  • Xóa
    npm run start
    
    4 hiện có và chạy
    npm run start
    
    5
  • Sau đó, bạn tạo cơ sở dữ liệu postgres có tên iLrn với thông tin đăng nhập sau

________số 8

  • Chạy di chuyển bằng lệnh sau.
    npm run start
    
    6
  • Cuối cùng, bạn chạy
    npm run start
    
    7

Các cải tiến trong tương lai sử dụng cấu trúc dựa trên thành phần.
Xin vui lòng⭐và lập trình vui vẻ✌️