Các biến toàn cục có thể được sử dụng trong Node khi được sử dụng một cách khôn ngoan .
Khai báo các biến toàn cục trong Node:
a = 10;
GLOBAL.a = 10;
global.a = 10;
Tất cả các lệnh trên đều có các hành động giống nhau với các cú pháp khác nhau.
Sử dụng các biến toàn cục khi chúng không bị thay đổi
Dưới đây là một ví dụ về điều gì đó có thể xảy ra khi sử dụng các biến toàn cục:
a = 10;
app.get("/users", (req, res, next) => {
res.send(a);
});
app.get("/permissions", (req, res, next) => {
a = 11;
res.send(a);
});
Giải thích:
Chạy tuyến người dùng trước và nhận 10;
Sau đó chạy các tuyến đường quyền và nhận được 11;
Sau đó, chạy lại định tuyến người dùng và nhận 11 thay vì 10;
Các biến toàn cục có thể bị vượt qua!
Bây giờ hãy nghĩ về việc sử dụng đối tượng res express và gán như toàn cục .. Và bạn sẽ gặp phải lỗi async trở nên bị hỏng và máy chủ bị tắt.
Khi nào sử dụng vars toàn cầu?
Như tôi đã nói - khi var không bị thay đổi. Tuy nhiên, bạn nên sử dụng process.envđối tượng từ tệp cấu hình.