CĂN BẢN
SERVER
MYSQL
MONGODB
MODULE
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Biến môi trường process.env trong Nodejs

Trong bài viết hôm này chúng ta sẽ cùng nhau đi tìm hiểu về biến môi trường process.env trong Nodejs, đây là một phần được sử dụng rất nhiều trong dự án Nodejs thực tế, bởi việc lưu trữ thông tin trong môi trường sẽ giúp cho quá trình làm việc cũng như deploy dự án dễ dàng hơn.

1. Biến môi trường process.env trong Node

Như mình đã đề cập đến ở phần trên thì proccess.env thường được dùng để lưu trữ các biến trong từng môi trường làm việc.

Ví dụ như lúc trên local bạn sử dụng port 3000 để chạy dự án, nhưng khi deloy trên thực tế thì bạn muốn dùng port 4000 chẳng hạn. Lúc này bạn chỉ cần thay đổi giá trị của port trong biến proccess.env. Biến process.env còn được dùng để lưu trữ các thông tin cần giữ bí mật trong quá trình phát triển ứng dụng như username, password của database,....

Tại sao không lưu trong các file .js để tiện hơn ? Thêm vào process.env làm gì cho mất công ? Bởi khi bạn lưu trong biến môi trường tất cả các file javascript có thể lấy được giá trị của nó. Bạn chỉ cần chỉnh sửa các biến môi trường.

Khi lưu các giá trị quan trọng như username, password của database thì khả năng bảo mật không cao khi push lên github chẳng hạn, bạn chỉ cần lưu các giá trị này trong file .env và ignore file này không push lên github.

Trong dự án thực tế, các đoạn mã nodejs cần phải chạy trên các môi trường khác nhau như (Dev, Test, Product), mỗi môi trường có các cấu hình khác nhau. Bởi vậy, nodejs cung cấp cho chúng ta cách thức để tùy chỉnh các biến giúp chạy trên các môi trường khác nhau đó.

Bạn có thể xem các biến môi trường có trong dự án bằng cách in ra các obecjt có trong biến proccess.env :

console.log(process.env)

Có thể thấy các biến môi trường có sẵn trong nodejs như trong hình:

process env trong nodejs png

2. Thêm biến môi trường trong NodeJS

Có 2 cách để thêm các biến môi trường vào trong dự án

Thêm bằng câu lệnh:

Khi chạy một file nodejs có thể sử dụng câu lệnh để thêm các biến môi trường vào, bạn chỉ cần thêm tên và giá trị của các biến này đăng sau tên file cần chạy theo dạng KEY=VALUE, các biến môi trường cách nhau bằng dấu cách. Chúng ta có file index.js in ra giá trị của biến môi trường PORT

console.log(process.env.DB_USERNAME, process.env.DB_PWD)
console.log('Port sử  dụng là ' + process.env.PORT)

Để gán thêm giá trị vào biến môi trường, giả sư như trong ví dụ này mình sẽ giá trị của biến PORT trong biến môi trường là 3000 và biến DB_USERNAME, DB_PWD. Mở terminal lên và gõ dòng lệnh :

node index.js PORT=3000 DB_USERNAME=freetuts DB_PWD=password

Lúc này bạn sẽ thấy biến môi trường sẽ được gán :

freetuts
password
Port sử dụng 3000

Cách này rất ít khi được sử dụng bởi thường các dự án có rất nhiều biến môi trường, khi truyền vào dòng lệnh rất khó để quản lí mà rất dài dòng. Trong dự án thực tế, người ta thường dùng cách thứ 2 đó là đưa nó vào trong file .env

Đưa biến môi trường vào trong file .env

Khi bạn có rất nhiều các biến môi trường bạn cần phải đưa nó vào file .env để dễ dàng sử dụng hơn. Trong thư mục chứa dự án bạn tạo một file có tên là .env trong đó chứa các biến môi trường, cách nhau bằng dấu xuống dòng.

Giả sử mình có file .env như sau:

PORT=3000
DB_USERNAME=freetuts
DB_PWD=password

Lúc này để lấy giá trị của biến môi trường bạn cần cài thêm một module có tên dotenv bằng cách mở terminal và chạy:

npm install -g dotenv

Bây giờ bạn chỉ cần require module này vào dự án và module dotenv sẽ tự động lấy các giá trị trong file .env và gán vào biến môi trường process.env để sử dụng. Mình có file index.js như sau:

require('dotenv').config()
console.log(process.env.DB_USERNAME, process.env.DB_PWD)
console.log('Port sử  dụng là ' + process.env.PORT)

Chạy file index.js bằng cách mở terminal và gõ dòng lệnh:

node index.js

bạn sẽ nhận được kết quả tương tự như cách đầu tiên:

freetuts
password
Port sử dụng 3000

Trong bài này chúng ta đã cùng nhau đi tìm hiểu về cách sử dụng biến môi trường trong dụ án NodeJS, đây là kiến thức rất cơ bản về nó nhưng cũng hết sức quan trọng trong quá trình làm việc với dự án thực tế. Mong rằng bài viết sẽ giúp ích cho bạn.

Cùng chuyên mục:

Crawl dữ liệu website bằng NodeJS cơ bản

Crawl dữ liệu website bằng NodeJS cơ bản

CORS là gì ? Xử lý CORS trong NodeJS

CORS là gì ? Xử lý CORS trong NodeJS

Chắc hẳn trong quá trình xử lý các request tới server thì một vài trường…

Xử lý form trong Express

Xử lý form trong Express

Xây dựng URL trong Express

Xây dựng URL trong Express

Trong bài viết này chúng ta sẽ cùng nhau đi tìm hiểu về cách xây…

Populate trong Mongoose

Populate trong Mongoose

Error Handling & Debugging trong Socket.io

Error Handling & Debugging trong Socket.io

Namespaces & Rooms trong Socket.io

Namespaces & Rooms trong Socket.io

Middleware trong Mongoose

Middleware trong Mongoose

Create / Read / Update / Delete trong Mongoose

Create / Read / Update / Delete trong Mongoose

Validation trong Mongoose

Validation trong Mongoose

Subdocuments trong Mongooose

Subdocuments trong Mongooose

Documents trong Mongoose

Documents trong Mongoose

Trong bài viết này chúng ta sẽ tìm hiểu về documents trong Mongoose

Models trong Mongoose

Models trong Mongoose

SchemaTypes trong Mongoose

SchemaTypes trong Mongoose

Schemas trong Mongoose

Schemas trong Mongoose

Mongoose trong NodeJS

Mongoose trong NodeJS

Làm việc với Table MySQL sử dụng Nodejs

Làm việc với Table MySQL sử dụng Nodejs

Kết nối với MongoDB trong NodeJS

Kết nối với MongoDB trong NodeJS

Giới thiệu MongoDB trong NodeJS

Giới thiệu MongoDB trong NodeJS

Insert / Update / Delete / Select MySQL trong NodeJS

Insert / Update / Delete / Select MySQL trong NodeJS

Top