/ / Cách triển khai API REST Express.js trên Kết xuất: Một giải pháp thay thế cho Heroku

Cách triển khai API REST Express.js trên Kết xuất: Một giải pháp thay thế cho Heroku

Vào cuối năm 2022, Heroku đã ngừng tùy chọn bậc miễn phí, dẫn đến việc loại bỏ gói đăng ký miễn phí có sẵn trước đó cho dịch vụ lưu trữ web và các dịch vụ đám mây khác trong hệ sinh thái của nó.


Bậc miễn phí đặc biệt tiện dụng và tiết kiệm chi phí nếu bạn có ý định triển khai và lưu trữ ứng dụng trong thời gian ngắn. May mắn thay, có một nền tảng đám mây thay thế, chẳng hạn như Heroku, cung cấp một bậc miễn phí cho các dịch vụ đám mây của nó cùng với các đặc quyền khác.

Trong bài viết này, chúng ta sẽ khám phá cách triển khai Express.js REST API trên Render, một nền tảng lưu trữ dựa trên đám mây.


Kết xuất là gì?

Render là một nền tảng lưu trữ đám mây cung cấp một cách liền mạch và không rắc rối để triển khai và quản lý các trang web tĩnh, ứng dụng web chính thức, API phụ trợ hoặc cơ sở dữ liệu trên đám mây. Các tính năng bao gồm:

  • Giao diện thân thiện với người dùng: Render cung cấp một giao diện đơn giản và trực quan giúp đơn giản hóa quá trình triển khai các ứng dụng được xây dựng bằng các ngôn ngữ lập trình phổ biến như Python và Node.js.
  • Cơ sở dữ liệu tích hợp: Render cung cấp hỗ trợ tích hợp sẵn cho các cơ sở dữ liệu phổ biến như PostgreSQL, MySQL và MongoDB, giúp dễ dàng thiết lập và tích hợp cơ sở dữ liệu vào các ứng dụng mà không cần phải thiết lập các máy chủ cơ sở dữ liệu riêng biệt.
  • Quy trình triển khai liền mạch: Kết xuất cung cấp các tính năng như triển khai tự động, khôi phục và tích hợp với các dịch vụ phổ biến như GitHub và GitLab.
  • Miền tùy chỉnh và SSL: Render cung cấp khả năng định cấu hình tên miền tùy chỉnh cho trang web và ứng dụng web, đồng thời bao gồm chứng chỉ SSL miễn phí để truy cập HTTPS an toàn.

So sánh giữa Render và Heroku

Giống như các nền tảng đám mây khác, Render có những ưu điểm và nhược điểm của nó. Nhưng làm thế nào để so sánh nó với các giải pháp đám mây phổ biến như Heroku?

  • Sự đơn giản: Render cung cấp giao diện thân thiện với người dùng để triển khai và quản lý ứng dụng, tập trung vào tính dễ sử dụng và cấu hình tối thiểu.
  • nhân rộng tự động: Kết xuất tự động thay đổi quy mô ứng dụng dựa trên nhu cầu mà không yêu cầu điều chỉnh thủ công hoặc cấu hình phức tạp.
  • Hiệu quả chi phí: Render cung cấp mức giá hiệu quả về chi phí, bao gồm một bậc miễn phí cho các dự án riêng lẻ và mức giá tương đối thấp cho các nhóm và kế hoạch tổ chức, làm cho nó trở thành một tùy chọn thân thiện với ngân sách để lưu trữ cả ứng dụng web quy mô nhỏ và dự án thương mại lớn.
  • Tính linh hoạt hạn chế: Tính đơn giản và cấu hình tối thiểu của nó có thể là một hạn chế đối với các dự án nâng cao và phức tạp đòi hỏi nhiều tùy chỉnh và kiểm soát hơn đối với môi trường lưu trữ.

Thiết lập một dự án mới trên Render

Để bắt đầu, hãy truy cập trang web của Render, đăng ký và đăng nhập vào tài khoản của bạn.

Trang chủ của Render trên trang web chính thức

Kết xuất giúp dễ dàng triển khai và quản lý API phụ trợ bằng cách cung cấp hỗ trợ tích hợp sẵn cho các ngôn ngữ lập trình và dịch vụ web phổ biến giúp hợp lý hóa quy trình triển khai.

Hướng dẫn này sẽ sử dụng tính năng dịch vụ web của nó để triển khai API Express.js REST. Để làm theo, trước tiên bạn cần thiết lập một phiên bản cơ sở dữ liệu PostgreSQL trên Kết xuất.

Trên trang tổng quan, nhấp vào PostgreSQL mới để thiết lập phiên bản mới.

Tính năng Render trên trang chủ

Tiếp theo, điền tên cơ sở dữ liệu của bạn và nhấp vào Tạo nên cơ sở dữ liệu. Cuối cùng, sao chép URL cơ sở dữ liệu nội bộ cung cấp. Bạn sẽ sử dụng nó để định cấu hình kết nối giữa Express REST API của bạn và cơ sở dữ liệu PostgreSQL.

Về cơ bản, URL Cơ sở dữ liệu Nội bộ được sử dụng để thiết lập kết nối giữa các ứng dụng đang chạy trên máy chủ của Kết xuất, chẳng hạn như API đã triển khai hoặc ứng dụng web chính thức.

Thông tin cơ sở dữ liệu PostgreSQL mới được thiết lập trên trang cài đặt của Render

Tuy nhiên, nếu bạn chỉ muốn sử dụng cơ sở dữ liệu PostgreSQL từ một ứng dụng được triển khai trên nền tảng khác, bạn có thể sử dụng URL cơ sở dữ liệu bên ngoài để cấu hình kết nối cơ sở dữ liệu.

Tạo API REST Express.js

Hãy tiếp tục và tạo một máy chủ web Express.js. Tiếp theo, cài đặt các gói sau:

 npm install pg knex 

Định cấu hình kết nối cơ sở dữ liệu

Để thiết lập kết nối giữa API Express.js và phiên bản PostgreSQL của Render, trong thư mục gốc của thư mục dự án của bạn, hãy tạo một db.js tập tin và thêm mã dưới đây.

 const knex = require('knex');
const db = knex({
  client: 'pg',
  connection: {
    connectionString: 'the database URL',
    ssl: {
      rejectUnauthorized: false
    }
  }
});

module.exports = db;

Tiếp theo, mở index.js tệp và thêm mã bên dưới để triển khai API REST đơn giản với bốn tuyến.

 const express = require("express");
const app = express()
const db = require('./db')
const PORT = process.env.PORT || 5000

app.use(express.json())
app.use(express.urlencoded({ extended: true }))

app.get("https://www.smartreviewaz.com/", (req, res) => res.send('Hello World!' ))


app.get('/users', async (req, res) => {
    try {
      const users = await db.select().from('users')
      res.json(users)
    } catch (error) {
      console.error(error)
      res.status(500).json({ message: 'Error retrieving users' })
    }
  })
  
  
app.post('/users', async (req, res) => {
  try {
    const user = await db('users').insert({ name: req.body.name }).returning('*')
    res.json(user)
  } catch (error) {
    console.error(error)
    res.status(500).json({ message: 'Error creating user' })
  }
})


app.delete('/users/:id', async (req, res) => {
  try {
    const { id } = req.params
    const user = await db('users').where({ id }).delete().returning('*')
    res.json(user)
  } catch (error) {
    console.error(error)
    res.status(500).json({ message: 'Error deleting user' })
  }
})

app.listen(PORT, () => console.log(`Server up at PORT:${PORT}`))

Thiết lập tệp migrate.js

Tạo một thư mục mới, kịch bảntrong thư mục gốc của dự án của bạn, thêm một tệp mới, di chuyển.js, và cuối cùng, thêm đoạn mã dưới đây:

 const db = require('../db');
(async () => {
    try {
    await db.schema.dropTableIfExists('users')
    await db.schema.withSchema('public').createTable('users', (table) => {
      table.increments()
      table.string('name')
     })
       console.log('Created users table!')
       process.exit(0)
   } catch (err) {
      console.log(err)
      process.exit(1)
  }
})()

Mã này sẽ tạo một cái mới người dùng bảng trong cơ sở dữ liệu với hai cột: trường khóa chính tăng tự động và trường tên.

Cuối cùng, thêm các lệnh này vào gói.json tài liệu.

 "scripts": {
   "start": "node index.js",
   "migrate": "node scripts/migrate.js",
},

Cuối cùng, để tạo bảng người dùng trên cơ sở dữ liệu, bạn cần chạy chương trình di chuyển.js tệp dưới dạng tập lệnh trên thiết bị đầu cuối của bạn bằng lệnh bên dưới.

 npm run migrate

Tuy nhiên, trước khi chạy lệnh, hãy đảm bảo truy xuất URL cơ sở dữ liệu bên ngoài từ thông tin cài đặt phiên bản PostgreSQL của Render và dán nó vào db.js tệp làm chuỗi kết nối.

Thao tác này sẽ thiết lập kết nối với phiên bản cơ sở dữ liệu từ máy cục bộ của bạn, cho phép bạn tạo bảng trước khi triển khai API. Sau khi bảng được tạo, bạn có thể đi tới phiên bản PostgreSQL của Render, truy xuất URL cơ sở dữ liệu nội bộvà cập nhật db.js tập tin cho phù hợp.

Triển khai API REST trên Render

Đầu tiên, tạo một kho lưu trữ mới trên GitHub và đẩy mã dự án. Tiếp theo, đăng nhập vào tài khoản Render của bạn, nhấp vào Mới+ và chọn nút Dịch vụ web tùy chọn từ trình đơn thả xuống.

Menu thả xuống hiển thị danh sách các tính năng do Kết xuất cung cấp với tùy chọn dịch vụ web được chọn.

Cuối cùng, truy cập tài khoản GitHub của bạn, chọn kho lưu trữ dự án của bạn và kết nối với nó trên Render.

Trang cài đặt kết nối GitHub của Render.

Trên trang cài đặt dịch vụ web, cung cấp tên cho dịch vụ mới, chỉ định thư mục gốc của dự án, lệnh xây dựng và bắt đầu, cuối cùng, nhấp vào Tạo dịch vụ web. Sau khi quá trình triển khai hoàn tất, hãy sao chép URL được cung cấp để kiểm tra các điểm cuối trên Postman.

Kiểm tra điểm cuối API trên Postman

Postman là một công cụ phổ biến để phát triển và thử nghiệm API. Để làm quen với Postman, hãy tìm hiểu cách sử dụng nó để kiểm tra API.

Để kiểm tra API đã triển khai, hãy tạo một BƯU KIỆN yêu cầu đến /người dùng điểm cuối để lưu trữ dữ liệu trong cơ sở dữ liệu PostgreSQL.

Yêu cầu API POST được thực hiện trên Postman

Cuối cùng, thực hiện một yêu cầu GET để truy xuất dữ liệu được lưu trữ.

API NHẬN yêu cầu

Kết xuất là một giải pháp thay thế khả thi?

Render cung cấp một quy trình thiết lập đơn giản và tích hợp liền mạch với các hệ thống kiểm soát phiên bản phổ biến khiến nó trở thành một nền tảng lưu trữ đám mây thay thế tốt.

Hơn nữa, mô hình định giá cạnh tranh và hỗ trợ tích hợp cho các công cụ phát triển phổ biến làm cho nó trở thành một lựa chọn đáng tin cậy và thân thiện với người dùng cho cả các dự án phụ và các ứng dụng thương mại lớn.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *