Chạy Express (Node.js) dưới dạng dịch vụ trên Windows

Run Express (Node.js) as a service on Windows

Posted by Box XV on April 17, 2024. 3 min read.

Express là khung ứng dụng web Node.js tối giản và linh hoạt, cung cấp một bộ tính năng mạnh mẽ cho các ứng dụng web và thiết bị di động. API.

Thông thường, chúng tôi triển khai các dịch vụ web của mình trên máy chủ linux, nhưng đôi khi chúng tôi cần triển khai Express trên máy tính Windows để thử nghiệm hoặc sản xuất.

Trong bài viết này tôi sẽ nói về một cách đơn giản để chạy máy chủ tốc hành của chúng tôi như một dịch vụ Windows.

Để làm được điều này, trước tiên chúng ta cần chuyển đổi ứng dụng express thành một tệp thực thi duy nhất bằng cách sử dụng pkg và sau đó sử dụng nssm Non-Sucking Service Manager, chúng ta sẽ chạy tệp thực thi dưới dạng dịch vụ

Chạy một ví dụ đơn giản

Tôi đã sử dụng windows 10 (x64) để chạy ví dụ này nhưng bạn có thể sử dụng bất kỳ phiên bản windows x64 nào khác.

Tạo ứng dụng express đơn giản của chúng tôi. express là một khung công tác nút js nên chúng tôi cần cài đặt nút js trên máy tính Windows của mình, chúng tôi có thể tải xuống nút js từ trang web chính thức của họ.

Sau đó mở cmd trong thư mục bạn muốn đặt ứng dụng của mình và chạy

mkdir express-app
cd express-app

Cài đặt express trong thư mục này

npm install --save express

Tạo tệp app.js:

const express = require('express')
const app = express()
const port = 3000
app.get('/', (req, res) => {
res.send('Hello From Windows Service !!')
})
app.listen(port, () => {
console.log(`App is running http://localhost:${port}`)
})

Kiểm tra ứng dụng của bạn bằng cách chạy lệnh này trong cmd trong cùng thư mục

node app.js
App is running http://localhost:3000

Bước 2

Bây giờ chúng tôi sẽ chuyển đổi mã của mình thành một tệp thực thi duy nhất bằng cách sử dụng pkg

Chúng ta cần cài đặt pkg trên toàn cầu bằng cách sử dụng

npm install -g pkg

Sau đó chúng ta cần chạy cmd trong thư mục ứng dụng để chạy

pkg app.js -t  node10-win-x64

Và sau đó chúng ta sẽ tìm thấy một tập tin thực thi: app.exe

Tệp này cho phép chúng tôi chạy trực tiếp ứng dụng express của mình trên bất kỳ máy tính Windows (x64) nào mà không cần cài đặt node.js và mã nguồn của chúng tôi bị ẩn.

Bước 3

Chuyển đổi tệp exe của chúng tôi thành dịch vụ windows bằng cách sử dụng nssm.

nssm là trình quản lý dịch vụ, bạn có thể tải xuống từ liên kết này. sau đó giải nén nó vào win64 và chạy cmd với tư cách quản trị viên trong thư mục và chạy

nssm install

nssm

Trong Đường dẫn bạn sẽ đặt đường dẫn của app.exe của chúng tôi

Trong tên dịch vụ, bạn sẽ đặt tên dịch vụ mà bạn sẽ thấy trong các dịch vụ windows.

Lưu ý: Không xóa file nssm.exe đi, vì mỗi lần service start sẽ dùng file này để chạy.

Sau đó bắt đầu dịch vụ của bạn:

nssm start app-service

Dịch vụ sẽ tự động khởi động sau khi khởi động lại.

Bạn cũng có thể xóa và dừng dịch vụ:

nssm stop app-service
nssm remove app-service

Và bạn có thể thấy dịch vụ từ Task manager trong tab services.

Trên đây là hướng dẫn cách deploy ứng dụng node.js dạng Windows Service, bạn có thể áp dụng cách này để triển khai bất kỳ file .bat hay .exe nào dưới dạng Windows Service.

Deploy Node JS application on IIS

Cảm ơn bạn đã đọc bài viết này của tôi, hy vọng rằng nó sẽ hữu ích và giúp bạn hiểu rõ hơn để lựa chọn tốt nhất trong công việc của mình.