Hướng dẫn nodejs env file production

Hướng dẫn nodejs env file production

Đã đăng vào thg 11 22, 2019 4:15 SA 2 phút đọc

1. Mở đầu:

Nếu bạn quan tâm đến việc làm cho ứng dụng của bạn chạy trên bất kỳ máy tính hoặc cloud computing nào , thì bạn nên sử dụng Environment Variables để setting các giá trị cho từng môi trường mà bạn mong muốn. Dưới đây là một số ví dụ cụ thể về các tình huống phổ biến khi bạn nên xem xét sử dụng các biến môi trường.

  • HTTP port to listen on

  • Đường dẫn và thư mục tệp của bạn

  • Chỉ định vào các môi trường development, staging, test, or production database

  • Các ví dụ khác có thể là URL tới server resources

Hãy cùng khám phá cách bạn có thể sử dụng các biến môi trường trong mã Node.js.

2. Create file .env:

Đầu tiên chúng ta tạo một file .env ở thư mục dự án của các bạn với nội dung là các Environment Variables mà các bạn cần sử dụng như

 NODE_ENV=development
 MONGODB_URI=mongodb://localhost/demodatabase
 SECRETKEY=SecretGarden
 PORT=3000

3. Reading the .env File :

Khi chúng ta đã có file .env rồi thì giờ chúng ta sẽ nghĩ tới việc làm sao để đọc các Environment Variables trong file .env đó.Vậy các bước như sau:

  • Tạo a package.json file
  • Install the dotenv npm package
  • Viết code để đọc the .env

4.Tạo a package.json file:

Hãy thử điều này bằng cách chạy lệnh sau

npm init -y

Điều này tạo ra một tệp package.json với các cài đặt cơ bản được điền cho bạn.

5. Install the dotenv npm package:

Bạn muốn đọc tệp .env và gói dotenv trên npm thực hiện điều này rất tốt. Cài đặt gói dotenv bằng cách chạy lệnh sau

npm install dotenv

Điều này sẽ thêm gói dotenv và các tệp của nó vào thư mục node_modules của bạn và tạo một mục trong package.json cho dotenv.

6. Viết code để đọc the .env:

Đầu tiên ta cần import dotenv vào file app.js chẳng hạn

require('dotenv').config();

Từ đây chúng ta có thể sử dụng các biến trong file .env mà chúng ta có đã tạo từ đầu bài viết, với code như sau :

  let server = app.listen(process.env.PORT || 3000, function () {
  logger.api.info(`Server listening on port ${server.address().port}`);
  console.log(`Server listening on port ${server.address().port}`);
});

"process.env.PORT" là đoạn code để chúng ta đọc giá trị của Environment Variables PORT trong .env file

7. Lưu ý:

Để nội dung của .env file không bị thay đổi giữa các môi trường khi update .env file thì bạn sử dụng .gitignore file để quy định việc này, bằng việc thêm .env file vào danh sách ignore

Hướng dẫn nodejs env file production

All rights reserved

Khi nhắc đến thuật ngữ “Environment Variable” là nghĩ ngay tới việc thiết đặt biến này cho thư mục Java Home trong windows

Trong Node, biến Environment là một biến global, thường được sử dụng để chỉ định process nào muốn chạy. Ví dụ, khi chạy một ứng dụng web, ta sẽ có các biến Environment sau:

  • Port
  • Database connection string

Nếu đã từng làm việc với .Net, chắc sẽ biết tới file web.config. Biến Environment làm việc i như các thiết đặt trong web.config

Hướng dẫn nodejs env file production

Set giá trị bằng terminal

Thí dụ ta set giá trị của PORT

PORT=6060 NODE_ENV=production webpack

Giờ lúc code, ta gọi cái biến này ra bằng cách

var port = process.env.PORT

Không phải lúc nào set giá trị của biến env bằng terminal, ví dụ connection string thì không ai đưa vào bằng terminal

PORT=65534 DB_CONN="mongodb://react-cosmos-db:swQOhAsVjfHx3Q9VXh29T9U8xQNVGQ78lEQaL6yMNq3rOSA1WhUXHTOcmDf38Q8rg14NHtQLcUuMA==@react-cosmos-db.documents.azure.com:19373/?ssl=true&replicaSet=globaldb" SECRET_KEY=b6264fca-8adf-457f-a94f-5a4b0d1ca2b9

Set giá trị bằng file .env

Tạo ra một cái file .env trong cùng thư mục project, khai báo mớ biến environment ở đây

PORT=65534

DB_CONN="mongodb://react-cosmos-db:swQOhAsVjfHx3Q9VXh29T9U8xQNVGQ78lEQaL6yMNq3rOSA1WhUXHTOcmDf38Q8rg14NHtQLcUuMA==@react-cosmos-db.documents.azure.com:10255/?ssl=true&replicaSet=globaldb"

SECRET_KEY="b6264fca-8adf-457f-a94f-5a4b0d1ca2b9"

Để đọc được giá trị này, có rất nhiều cách, mà cách nào thì cũng phải cái thêm package!, dùng package dễ nhất là dotenv

npm install dotenv --save

Việc sử dụng hết sức đơn giản như sau

require('dotenv').config();

var MongoClient = require('môngdb').MongoClient;

MongoClient.connect(process.env.DB_CONN, function(err, db) {
  if(!err) {
    console.log("We are connected");
  }
});

Lưu ý đừng check in file .env này lên github, nếu checkin lên Github sẽ báo ngay tới email là việc làm này hết sức nguy hại tới sự ‘riêng tư’!

Extension của VSCode

Nếu đang dùng VSCode, một số extension này sẽ hữu ích

DotENV extension: mang màu sắc đến với cuộc sống