Dự án mẫu MongoDB GitHub

Đây là một ứng dụng CRUD đơn giản được xây dựng bằng MEAN (MongoDB, Express, Angular, Node. js) ngăn xếp. Bạn cũng có thể làm theo hướng dẫn từng bước để xây dựng ứng dụng này

Dự án mẫu MongoDB GitHub

Làm thế nào để chạy

Đặt chuỗi kết nối URI Atlas của bạn làm tham số trong

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
1. Đảm bảo bạn thay thế phần giữ chỗ tên người dùng và mật khẩu bằng thông tin đăng nhập của riêng bạn

Ứng dụng này được tạo bằng JHipster 7. 9. 3, bạn có thể tìm tài liệu và trợ giúp tại https. //www. jhipster. công nghệ/tài liệu lưu trữ/v7. 9. 3

Cấu trúc dự án

Cần có nút để tạo và được đề xuất để phát triển.

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
3 luôn được tạo để có trải nghiệm phát triển tốt hơn với các hook cam kết, tập lệnh đẹp hơn, v.v.

Trong thư mục gốc của dự án, JHipster tạo các tệp cấu hình cho các công cụ như git, prettier, eslint, husky và các công cụ khác nổi tiếng và bạn có thể tìm tài liệu tham khảo trên web

Cấu trúc

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
4 tuân theo cấu trúc Java mặc định

  • ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
    5 - Tệp cấu hình Yeoman Cấu hình JHipster được lưu trữ trong tệp này tại khóa
    ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
    6. Bạn có thể tìm thấy
    ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
    7 để biết cấu hình bản thiết kế cụ thể

  • ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
    8 (tùy chọn) - Trình giải quyết xung đột Yeoman Cho phép sử dụng một hành động cụ thể khi phát hiện xung đột bỏ qua lời nhắc đối với các tệp khớp với mẫu. Mỗi dòng phải khớp với
    ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
    9 với mẫu là mẫu và hành động là bỏ qua (mặc định nếu được đặt) hoặc bắt buộc. Các dòng bắt đầu bằng
    npm install --save --save-exact leaflet
    
    0 được coi là nhận xét và bị bỏ qua

  • npm install --save --save-exact leaflet
    
    1 - Tệp cấu hình thực thể JHipster

  • npm install --save --save-exact leaflet
    
    2 - trình bao bọc để sử dụng npm được cài đặt cục bộ. JHipster cài đặt Node và npm cục bộ bằng công cụ xây dựng theo mặc định. Trình bao bọc này đảm bảo npm được cài đặt cục bộ và sử dụng nó để tránh một số khác biệt mà các phiên bản khác nhau có thể gây ra. Bằng cách sử dụng
    npm install --save --save-exact leaflet
    
    3 thay vì
    npm install --save --save-exact leaflet
    
    4 truyền thống, bạn có thể định cấu hình môi trường Không có nút để phát triển hoặc thử nghiệm ứng dụng của mình

  • npm install --save --save-exact leaflet
    
    5 - Cấu hình Docker cho ứng dụng và dịch vụ mà ứng dụng phụ thuộc vào

Phát triển

Trước khi bạn có thể xây dựng dự án này, bạn phải cài đặt và định cấu hình các phụ thuộc sau trên máy của mình

  1. Nút. js. Chúng tôi sử dụng Node để chạy máy chủ web phát triển và xây dựng dự án. Tùy thuộc vào hệ thống của bạn, bạn có thể cài đặt Node từ nguồn hoặc dưới dạng gói được đóng gói sẵn

Sau khi cài đặt Node, bạn sẽ có thể chạy lệnh sau để cài đặt các công cụ phát triển. Bạn sẽ chỉ cần chạy lệnh này khi các phụ thuộc thay đổi trong gói. json

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
3

Chúng tôi sử dụng tập lệnh npm và CLI góc với Webpack làm hệ thống xây dựng của chúng tôi

Chạy các lệnh sau trong hai thiết bị đầu cuối riêng biệt để tạo trải nghiệm phát triển thú vị khi trình duyệt của bạn tự động làm mới khi tệp thay đổi trên ổ cứng của bạn

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
4

Npm cũng được sử dụng để quản lý các phụ thuộc CSS và JavaScript được sử dụng trong ứng dụng này. Bạn có thể nâng cấp các phụ thuộc bằng cách chỉ định phiên bản mới hơn trong gói. json. Bạn cũng có thể chạy

npm install --save --save-exact leaflet
6 và
npm install --save --save-exact leaflet
7 để quản lý các phụ thuộc. Thêm cờ
npm install --save --save-exact leaflet
8 vào bất kỳ lệnh nào để xem bạn có thể sử dụng nó như thế nào. Ví dụ,
npm install --save --save-exact leaflet
9

Lệnh

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
90 sẽ liệt kê tất cả các tập lệnh có sẵn để chạy cho dự án này

Hỗ trợ PWA

JHipster cung cấp hỗ trợ PWA (Ứng dụng web lũy tiến) và nó bị tắt theo mặc định. Một trong những thành phần chính của PWA là nhân viên dịch vụ

Mã khởi tạo nhân viên dịch vụ bị tắt theo mặc định. Để kích hoạt nó, hãy bỏ ghi chú đoạn mã sau trong

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
91

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),

Quản lý phụ thuộc

Ví dụ: để thêm thư viện Tờ rơi làm phụ thuộc thời gian chạy ứng dụng của bạn, bạn sẽ chạy lệnh sau

npm install --save --save-exact leaflet

Để hưởng lợi từ các định nghĩa kiểu TypeScript từ kho lưu trữ DefiniteTyped đang được phát triển, bạn sẽ chạy lệnh sau

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
9

Sau đó, bạn sẽ nhập các tệp JS và CSS được chỉ định trong hướng dẫn cài đặt của thư viện để Webpack biết về chúng. Chỉnh sửa src/main/webapp/ứng dụng/ứng dụng. mô-đun. tập tin ts

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
4

Chỉnh sửa src/main/webapp/content/scss/vendor. tập tin scss

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
5

Ghi chú. Vẫn còn một số việc khác cần làm cho Tờ rơi mà chúng tôi sẽ không trình bày chi tiết ở đây

Để biết thêm hướng dẫn về cách phát triển với JHipster, hãy xem Sử dụng JHipster trong quá trình phát triển

Sử dụng CLI góc

Bạn cũng có thể sử dụng Angular CLI để tạo một số mã máy khách tùy chỉnh

Ví dụ, lệnh sau

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
6

sẽ tạo ra vài tập tin

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
7

Trung tâm điều khiển JHipster

Trung tâm điều khiển JHipster có thể giúp bạn quản lý và kiểm soát (các) ứng dụng của mình. Bạn có thể khởi động máy chủ trung tâm điều khiển cục bộ (có thể truy cập trên http. //máy chủ cục bộ. 7419) với

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
8

Xây dựng cho sản xuất

Đóng gói dạng hũ

Để xây dựng jar cuối cùng và tối ưu hóa ứng dụng jhipsterMongodbSampleApplication cho sản xuất, hãy chạy

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
40

Điều này sẽ nối và thu nhỏ các tệp CSS và JavaScript của máy khách. Nó cũng sẽ sửa đổi

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
92 để nó tham chiếu các tệp mới này. Để đảm bảo mọi thứ hoạt động, hãy chạy

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
41

Sau đó điều hướng đến http. //máy chủ cục bộ. 8080 trong trình duyệt của bạn

Tham khảo Sử dụng JHipster trong sản xuất để biết thêm chi tiết

Bao bì như chiến tranh

Để đóng gói ứng dụng của bạn dưới dạng chiến tranh để triển khai ứng dụng đó tới máy chủ ứng dụng, hãy chạy

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
42

thử nghiệm

Để chạy thử nghiệm ứng dụng của bạn, hãy chạy

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
43

kiểm tra khách hàng

Các bài kiểm tra đơn vị được điều hành bởi Jest. Chúng nằm trong src/test/javascript/ và có thể chạy với

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
44

Các thử nghiệm từ đầu đến cuối giao diện người dùng được cung cấp bởi Cypress. Chúng nằm trong src/test/javascript/cypress và có thể được chạy bằng cách khởi động Spring Boot trong một thiết bị đầu cuối (

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
93) và chạy thử nghiệm (
ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
94) trong thiết bị đầu cuối thứ hai

kiểm toán ngọn hải đăng

Bạn có thể thực hiện [kiểm tra ngọn hải đăng] tự động [https. // nhà phát triển. Google. com/web/tools/lighthouse/] với [kiểm toán cây bách] [https. //github. com/mfrachet/cypress-audit] bằng cách chạy

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
95. Bạn chỉ nên chạy kiểm tra khi ứng dụng của bạn được đóng gói với hồ sơ sản xuất. Báo cáo về ngọn hải đăng được tạo vào năm 196

các bài kiểm tra khác

Các bài kiểm tra hiệu suất được điều hành bởi Gatling và được viết bằng Scala. Chúng nằm trong src/test/gatling

Để sử dụng các bài kiểm tra đó, bạn phải cài đặt Gatling từ https. // gatling. io/

Để biết thêm thông tin, hãy tham khảo trang Chạy thử nghiệm

chất lượng mã

Sonar được sử dụng để phân tích chất lượng mã. Bạn có thể khởi động máy chủ Sonar cục bộ (có thể truy cập trên http. //máy chủ cục bộ. 9001) với

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
45

Ghi chú. chúng tôi đã tắt xác thực trong src/main/docker/sonar. yml để có trải nghiệm vượt trội khi dùng thử SonarQube, đối với các trường hợp sử dụng thực tế, hãy bật lại

Bạn có thể chạy phân tích Sonar bằng cách sử dụng sonar-scanner hoặc bằng cách sử dụng plugin maven

Sau đó, chạy phân tích Sonar

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
46

Nếu bạn cần chạy lại giai đoạn Sonar, vui lòng đảm bảo chỉ định ít nhất giai đoạn

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
97 vì các thuộc tính Sonar được tải từ sonar-project. tệp thuộc tính

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
47

Để biết thêm thông tin, hãy tham khảo trang Chất lượng mã

Sử dụng Docker để đơn giản hóa quá trình phát triển (tùy chọn)

Bạn có thể sử dụng Docker để cải thiện trải nghiệm phát triển JHipster của mình. Một số cấu hình docker-compose có sẵn trong thư mục src/main/docker để khởi chạy các dịch vụ bên thứ ba cần thiết

Ví dụ: để bắt đầu cơ sở dữ liệu mongodb trong bộ chứa docker, hãy chạy

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
48

Để dừng nó và xóa vùng chứa, hãy chạy

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
49

Bạn cũng có thể cập bến hoàn toàn ứng dụng của mình và tất cả các dịch vụ mà nó phụ thuộc vào. Để đạt được điều này, trước tiên hãy tạo hình ảnh docker cho ứng dụng của bạn bằng cách chạy

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
0

Hoặc xây dựng hình ảnh docker arm64 khi sử dụng hệ điều hành bộ xử lý arm64 như MacOS với họ bộ xử lý M1 đang chạy

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
1

Sau đó chạy

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
2

Khi chạy Docker Desktop trên MacOS Big Sur trở lên, hãy cân nhắc bật

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
98 thử nghiệm để có hiệu suất xử lý tốt hơn (hiệu suất truy cập đĩa kém hơn)

Để biết thêm thông tin, hãy tham khảo Sử dụng Docker và Docker-Compose, trang này cũng chứa thông tin về trình tạo phụ docker-compose (

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
99), có thể tạo cấu hình docker cho một hoặc một số ứng dụng JHipster

Tích hợp liên tục (tùy chọn)

Để định cấu hình CI cho dự án của bạn, hãy chạy trình tạo phụ ci-cd (

ServiceWorkerModule.register('ngsw-worker.js', { enabled: false }),
40), điều này sẽ cho phép bạn tạo các tệp cấu hình cho một số hệ thống Tích hợp liên tục. Tham khảo trang Thiết lập tích hợp liên tục để biết thêm thông tin