Cài đặt biến môi trường nodejs

NODE_ENV là một biến môi trường giúp xác định môi trường chạy của ứng dụng Node.js từ đó giúp lựa chọn các cấu hình khác nhau của ứng dụng tùy theo môi trường.

Ví dụ 1

Bạn tạo một ứng dụng node.js có kết nối tới cơ sở dữ liệu.

  • Khi deploy ứng dụng đó lên môi trường product (môi trường chạy thật). Thì ứng dụng sẽ kết nối tới database chứa dữ liệu thực tế cho khác hàng, người dùng nhập vào… Dữ liệu này rất quan trọng và ko được chỉnh sửa hay làm mất nó.
  • Khi bạn lập trình, tạo tính năng mới cho ứng dụng này thì bạn cần phải kết nối tới database local hoặc một database khác để test, thử tính năng mới chứ ko được kết nối tới database product
  • Tương tự khi bạn tạo một bản cho tester test thì họ cũng sẽ kết nối tới 1 database riêng với bộ dữ liệu riêng theo từng case để test.

Vấn đề đặt ra là mỗi lần deploy ứng dụng node.js trên các môi trường khác nhau (Product, dev, test). Bạn lại phải sửa lại code để nó kết nối tới 1 một database khác nhau. Nhất là trong trường hợp việc deploy ứng dụng tự động thì việc sửa code đó lại phức tạp hơn.

Giải pháp là khi deploy ứng dụng ta sẽ kiểm tra đó là môi trường nào để tạo kết nối tới database đó. Và biến node_env chính là biến để kiểm tra môi trường chạy ứng dụng node.js.

Ví dụ 2

Một ví dụ khác nữa rất hay gặp đó là khi bạn chạy ứng dụng ở môi trường dev thì bạn sẽ cần log ra màn hình console để xem log trực tiếp. Trong khi môi trường product thì hoàn toàn không cần thiết (ở trên môi trường product người ta sẽ xem log qua file log)

Ở đây mình sẽ kiểm tra nếu NODE_ENV không phải là ‘production‘ thì mình mới thực hiện log ra console

(Xem lại: Code ví dụ Node.js logger)

if (process.env.NODE_ENV !== 'production') {
  logger.add(new winston.transports.Console({
    format: winston.format.simple()
  }));
}

Hướng dẫn thiết lập NODE_EVN

Thực chất thì NODE_ENV là một biến môi trường trên hệ điều hành. Do đó bạn không nhất thiết phải đặt tên là NODE_ENV, ví dụ bạn có thể đặt là ENV_NODE… và khi check môi trường chạy ứng dụng, bạn sẽ check theo tên biến mà bạn đã set trên hệ điều hành.

Để thiết lập biến ENV_NODE trên MacOS, Linux (Ubuntu…) ta mở màn hình terminal chạy lệnh sau:

export NODE_ENV=ten_moi_truong

Để thiết lập biến ENV_NODE trên Windows ta mở cửa sổ cmd hoặc powershell chạy lệnh sau:

SET NODE_ENV=ten_moi_truong

Ví dụ:

Cài đặt biến môi trường nodejs

Hoặc bạn cũng có thể chạy ứng dụng với lệnh sau:

NODE_ENV=ten_moi_truong node app.js

Hoặc thiết lập NODE_ENV trong file

export NODE_ENV=ten_moi_truong
1 (cách này mình không suggest vì nó làm mất tính linh hoạt của ứng dụng theo môi trường)

Thực sự việc cài NodeJS trên window thì cũng không khác mấy những phần mềm bình thường, cứ start rồi next next… finish ^^. Vì vậy trong bài viết này ngoài việc cài mình cũng sẽ giải thích thêm 1 số kiến thức căn bản cần biết về NodeJS cho newbie.

Đôi lời chém gió ban đầu

Như các bạn đã biết javascript là ngôn ngữ phía client còn để thực hiện những công việc về phía server thì chúng ta thưởng sử dụng các ngôn ngữ lập trình như ASP.NET, PHP, Ruby in Rails, Perl,… Nhưng khi Node.js ra đời nó cho phép các nhà phát triển ứng dụng chỉ cần sử dụng Javascript để lập trình cho cả client side và server.

Trang chủ: http://www.nodejs.org/

Cài đặt

Truy cập vào đường link sau: https://nodejs.org/en/download/ chọn gói cài đặt phù hợp với máy bạn

Cài đặt biến môi trường nodejs

Sau đó mở file cài đặt lên và cứ việc next thôi :))

Cài đặt biến môi trường nodejs

Lưu ý: phải nhớ đường dẫn này nhé, vì sau khi cài xong các bạn phải truy cập vào đường link này gọi thì mới start được App lên. Điều này rất phiền phức, nhưng mình sau đó mình sẽ hướng dẫn bạn add vào CLI của window, có thể chạy trực tiếp trên Command Prompt (CMD) ở bất kỳ đâu.

Cài đặt biến môi trường nodejs

Cài đặt biến môi trường nodejs

Sau khi finish, bạn mở command promt tại thư mục đã cài đặt NodeJS, với mình là D:\Program Files\nodejs, rồi gõ lệnh node -v (của mình là v0.12.5)

Cài đặt biến môi trường nodejs

Phiền phức thật khi phải truy cập như vậy mới có thể chạy NodeJS được, sau đây mình sẽ hướng dẫn bạn add nodejs vào CLI như đã nói lúc trước, mình chỉ hướng dẫn trên Window thôi, không có điều kiện sử dụng Mac 🙂

 Vào System Properties, cái này click chuột phải vào My Computer, tùy hệ điều hành, nó sẽ khác nhau nhé, chọn tab Advanced, nhấn nút Environment Variables. Coi trong mục System Variables, có 1 trường là Path, click Edit nó.

Cài đặt biến môi trường nodejs

Sau đó add cái đường dẫn mà bạn đã cài NodeJS vào đó, cứ gõ “;” rồi paste thêm 1 dòng ở cuối. Do nodejs mình cài lâu rồi, sau này có cài thêm 1 số ứng dụng khác nên lúc này thấy nó nằm ở giữa.


Cài đặt biến môi trường nodejs

Sau này khi cài Composer phar của PHP, hay Ruby, Redis,… cũng có thể ứng dụng lại cách thức này

Node Packaged Modules (npm)

Node Packaged Modules là hỗ trợ cho việc quản lý và cài đặt các module nó cũng kiểu như dạng composer quản lý các thư viện trong PHP.Và để cài đặt các module trong nodejs thì chỉ cần thực hiện cú pháp đơn giản:

npm install module_name

npm install expressjs

Nếu muốn lưu vào file package.json thì gõ thêm –save, nó sẽ lưu tên module, kèm phiên bản vào file packgage.json