Tôi hiện đang trong quá trình tạo ứng dụng nút/ứng dụng nhanh thành triển khai sản xuất, và tôi cần phải chạy nó trong chế độ thân thiện với sản xuất (ví dụ: ít lỗi hơn để stdOut, viết nhật ký cho các địa điểm khác nhau, cho người dùng biết ít hơn khi xảy ra lỗi, v.v.).Cách tốt nhất để đặt ứng dụng Node/Express thành chế độ trực tiếp hoặc chế độ sản xuất
Tôi đang đấu tranh một chút với điều này, vì bất cứ khi nào tôi đặt một biến hầu như bất kỳ loại nào để gọi chế độ 'sản xuất', nó không ảnh hưởng đến chương trình khi chương trình chạy.
Khi đưa ra trong chế độ dev, mã của tôi chạy qua Gulp, và chạy kịch bản này:
#!/usr/bin/env node
var debug = require('debug')('ascema');
var app = require('../app');
app.set('port', process.env.PORT || 3000);
var server = app.listen(app.get('port'), function() {
debug('Express server listening on port ' + server.address().port);
});
nào, như bạn đã biết, chỉ là kịch bản ra mắt được tạo ra từ các máy phát điện nhanh.
Để chạy nó trong chế độ trực tiếp, tôi đã tạo ra một khởi động thay thế cho các máy chủ để sử dụng (Tôi hầu như không thể sử dụng ngụm anyway) và live.js chạy này:
#!/usr/bin/env node
var app = require('./app.js');
app.set('env', 'production');
console.log('running on Port 3000');
var server = app.listen(3000);
Nhưng, khi tôi sử dụng app.get('env')
ở bất kỳ nơi nào trong ứng dụng (ví dụ: trong app.js hoặc trong các phụ thuộc khác nhau), nó vẫn trả về 'phát triển' và vì vậy không có tác vụ sản xuất nào của tôi xảy ra.
Tôi đang làm gì sai ở đây?
Rất cám ơn.
Cảm ơn, tôi đã hy vọng rằng sẽ có cách tốt hơn là đặt biến môi trường, nhưng tôi đoán điều này sẽ phải làm. –