Tạo và chạy dự án LoopBack
LoopBack là gì?
LoopBack là một framework Node.js được phát triển bởi IBM, rất dễ mở rộng và dùng để xây dựng API và microservices. Nó cung cấp các công cụ và tính năng mạnh mẽ, giúp các nhà phát triển dễ dàng tạo, kiểm thử và triển khai API. LoopBack sử dụng phương pháp phát triển dựa trên mô hình (MDD) để nhanh chóng tạo ra RESTful API và hỗ trợ kết nối nhiều loại cơ sở dữ liệu.
Những tính năng và lợi ích chính của LoopBack
- Phát triển dựa trên mô hình: Tự động tạo RESTful API thông qua việc định nghĩa mô hình.
- Hỗ trợ nhiều cơ sở dữ liệu: Hỗ trợ nhiều cơ sở dữ liệu như MongoDB, MySQL, PostgreSQL, MariaDB, v.v.
- Công cụ CLI mạnh mẽ: LoopBack CLI cung cấp nhiều lệnh phong phú, giúp đơn giản hóa việc tạo và quản lý dự án.
- Nhiều plugin và mở rộng phong phú: Có nhiều plugin và mở rộng giúp dễ dàng tích hợp các dịch vụ và thư viện bên thứ ba.
- Tích hợp sẵn xác thực và ủy quyền người dùng: Cung cấp cơ chế xác thực và ủy quyền người dùng mạnh mẽ.
Sử dụng LoopBack, các nhà phát triển có thể nhanh chóng xây dựng ứng dụng web và API hiệu suất cao và dễ mở rộng.
Tạo và chạy dự án LoopBack sử dụng ServBay
Trong bài viết này, chúng ta sẽ sử dụng môi trường Node.js mà ServBay cung cấp để tạo và chạy một dự án LoopBack. Chúng ta sẽ sử dụng chức năng 'Host' của ServBay để thiết lập máy chủ Web và truy cập dự án thông qua proxy ngược.
Tạo dự án LoopBack
Cài đặt LoopBack CLI
Trước tiên, hãy đảm bảo rằng bạn đã cài đặt môi trường Node.js mà ServBay cung cấp. Sau đó, sử dụng lệnh sau để cài đặt LoopBack CLI toàn cầu:
bashnpm install -g @loopback/cli
1Khởi tạo dự án
Trong thư mục gốc của trang web mà ServBay gợi ý
/Applications/ServBay/www
, tạo một dự án LoopBack mới:bashcd /Applications/ServBay/www lb4 app servbay-loopback-app
1
2Làm theo hướng dẫn để nhập tên dự án (gợi ý là
servbay-loopback-app
), và chọn các tùy chọn khác theo nhu cầu.Cài đặt dependencies
Đi vào thư mục dự án và cài đặt dependencies:
bashcd servbay-loopback-app npm install
1
2
Chỉnh sửa nội dung xuất ra của dự án LoopBack
Chỉnh sửa file
src/controllers/ping.controller.ts
Mở file
src/controllers/ping.controller.ts
và sửa nội dung để trang web xuất ra "Hello ServBay!":typescriptimport {get} from '@loopback/rest'; export class PingController { constructor() {} @get('/ping') ping(): string { return 'Hello ServBay!'; } }
1
2
3
4
5
6
7
8
9
10
Vào chế độ phát triển
Chạy máy chủ phát triển
Khởi chạy máy chủ phát triển và chỉ định cổng (ví dụ: 8585):
bashPORT=8585 npm start
1Điều này sẽ khởi động một máy chủ phát triển cục bộ và công khai cổng 8585.
Cấu hình proxy ngược cho host của ServBay
Sử dụng chức năng 'Host' của ServBay để truy cập máy chủ phát triển thông qua proxy ngược. Trong cài đặt 'Host' của ServBay, thêm một proxy ngược mới:
- Tên:
My first LoopBack dev site
- Tên miền:
servbay-loopback-test.dev
- Loại host:
Proxy ngược
- IP:
127.0.0.1
- Cổng:
8585
Xem hướng dẫn chi tiết tại thêm trang web phát triển Nodejs.
- Tên:
Truy cập chế độ phát triển
Mở trình duyệt và truy cập
https://servbay-loopback-test.dev/ping
để xem dự án theo thời gian thực. Nhờ sự hỗ trợ của ServBay về tên miền tùy chỉnh và chứng chỉ SSL miễn phí, bạn sẽ có mức độ bảo mật cao hơn.
Triển khai phiên bản sản xuất
Chuẩn bị môi trường sản xuất
Đảm bảo dự án của bạn có thể chạy bình thường trong môi trường sản xuất. Thường thì dự án LoopBack không cần bước xây dựng đặc biệt, nhưng có thể bạn cần phải thiết lập một số biến môi trường hoặc các cấu hình khác.
Chạy máy chủ sản xuất
Khởi chạy máy chủ sản xuất và chỉ định cổng (ví dụ: 8586):
bashPORT=8586 NODE_ENV=production npm start
1Cấu hình proxy ngược cho host của ServBay
Sử dụng chức năng 'Host' của ServBay để truy cập máy chủ sản xuất thông qua proxy ngược. Trong cài đặt 'Host' của ServBay, thêm một proxy ngược mới:
- Tên:
My first LoopBack production site
- Tên miền:
servbay-loopback-test.prod
- Loại host:
Proxy ngược
- IP:
127.0.0.1
- Cổng:
8586
- Tên:
Truy cập chế độ sản xuất
Mở trình duyệt và truy cập
https://servbay-loopback-test.prod
để xem phiên bản sản xuất. Nhờ vào tên miền tùy chỉnh của ServBay và chứng chỉ SSL miễn phí, trang web của bạn sẽ có mức độ bảo mật và độ tin cậy cao hơn.
Kết nối cơ sở dữ liệu
ServBay cung cấp hỗ trợ các cơ sở dữ liệu như Redis, MariaDB, PostgreSQL và MongoDB. Dưới đây là cách kết nối các cơ sở dữ liệu này.
Kết nối MongoDB
Cài đặt
@loopback/connector-mongodb
:bashnpm install --save @loopback/connector-mongodb
1Sau đó cấu hình nguồn dữ liệu trong dự án:
typescript// src/datasources/mongodb.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'mongodb', connector: 'mongodb', url: 'mongodb://localhost/servbay-loopback-app', host: 'localhost', port: 27017, user: '', password: '', database: 'servbay-loopback-app', }; export class MongodbDataSource extends juggler.DataSource { static dataSourceName = 'mongodb'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20Kết nối Redis
Cài đặt
loopback-connector-redis
:bashnpm install --save loopback-connector-redis
1Sau đó cấu hình nguồn dữ liệu trong dự án:
typescript// src/datasources/redis.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'redis', connector: 'redis', url: 'redis://localhost:6379', }; export class RedisDataSource extends juggler.DataSource { static dataSourceName = 'redis'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Kết nối MariaDB
Cài đặt
@loopback/connector-mysql
:bashnpm install --save @loopback/connector-mysql
1Sau đó cấu hình nguồn dữ liệu trong dự án:
typescript// src/datasources/mariadb.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'mariadb', connector: 'mysql', url: '', host: 'localhost', port: 3306, user: 'root', password: 'password', database: 'servbay_loopback_app', }; export class MariaDbDataSource extends juggler.DataSource { static dataSourceName = 'mariadb'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20Kết nối PostgreSQL
Cài đặt
@loopback/connector-postgresql
:bashnpm install --save @loopback/connector-postgresql
1Sau đó cấu hình nguồn dữ liệu trong dự án:
typescript// src/datasources/postgresql.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'postgresql', connector: 'postgresql', url: '', host: 'localhost', port: 5432, user: 'user', password: 'password', database: 'servbay_loopback_app', }; export class PostgresqlDataSource extends juggler.DataSource { static dataSourceName = 'postgresql'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Bằng cách làm theo các bước trên, bạn đã tạo và chạy thành công một dự án LoopBack và sử dụng các tính năng mà ServBay cung cấp để quản lý và truy cập dự án của mình, cùng với việc kết nối nhiều loại cơ sở dữ liệu.