Node.js namespacing
Пострадав немного, чтобы наилучшим образом использовать модуль Node module/require()/exports, настроенный для правильного программирования OO. Является ли хорошей практикой создание глобального пространства имен и не использовать экспорт (как при разработке приложений js на стороне клиента)? Итак, в модуле (Namespace.Constructor.js):
Namespace = Namespace || {};
Namespace.Constructor = function () {
//initialise
}
Namespace.Constructor.prototype.publicMethod = function () {
// blah blah
}
... и при вызове файла просто используйте...
requires('Namespace.Constructor');
var object = new Namespace.Constructor();
object.publicMethod();
Спасибо
Ответы
Ответ 1
В node.js, расположение модуля является пространством имен, поэтому нет необходимости в пространстве имен в коде, как вы описали. Я думаю, что есть некоторые проблемы с этим, но они управляемы. Node будет отображаться только код и данные, которые вы прикрепляете к объекту module.exports.
В вашем примере используйте следующее:
var Constructor = function() {
// initialize
}
Constructor.prototype.publicMethod = function() {}
module.exports = Constructor;
И затем в вашем кодовом коде:
var Constructor = require('./path/to/constructor.js');
var object = new Constructor();
object.publicMethod();