Tôi đã được viết module trong nodejs như sau:Nodejs: Bao bì toàn bộ kịch bản trong một cuộc gọi chức năng
module.exports = function (logger, db, external,constants) {
return {
//something
}
}
Gần đây ai đó trong đội của tôi gợi ý rằng toàn bộ kịch bản nên được bọc trong một chức năng để tránh nhầm lẫn toàn cầu của các biến tức là như thế này:
(function() {
'use strict';
module.exports = function (logger, db, external,constants) {
return {
//something
}
}
}());
Tôi hiểu rằng thực tế này thường được sử dụng ở mã phía máy khách. Nhưng trong khi phía máy chủ trong nodejs là điều này yêu cầu? Tôi nghĩ rằng trong nodejs có thực sự không có phạm vi toàn cầu và chỉ có module.exports là một trong đó có thể truy cập thực sự không phân biệt bất cứ điều gì chúng tôi viết trong tập lệnh (ofcourse không đi hoang dã ở đây).
Không có lý do gì. Các mô-đun nút được mặc định thực hiện trong một phạm vi riêng. – Bergi