Я играл с node.js на некоторое время, и я действительно понял, насколько это потрясающе. Тем не менее, одна вещь, которую я пытаюсь понять, - это то, как я должен структурировать свой код, чтобы он поддерживался. Большинство обучающих программ, которые я видел в Интернете, имеют все JS в одном файле, что вряд ли является хорошим способом управления вашим кодом. Я знаю, что в действительности нет такой вещи, как "класс" в javascript, но есть (стандартный) способ форматировать мой код для ремонтопригодности таким же образом, как я бы структурировал проект PHP, например
Как правильно структурировать код nodejs
Ответ 1
Afaik вы можете использовать require
для включения ваших собственных js файлов (содержащих экспортированные методы), используя:
var req = require('./someJsFile');
Внутри someJsFile.js
вы можете экспортировать такие методы:
exports.someMethod = function(){ /*...*/ };
И в вашем основном файле вы можете обратиться к такому методу, используя req.someMethod()
Таким образом, вы можете разделить свой код в разных файлах, которые вы require
из какого-либо центрального js файла.
Вот статья, объясняющая node.js require
Ответ 2
Я бы добавил, что с точки зрения ремонтопригодности я считаю, что типичный стиль глубоко вложенных обратных вызовов с использованием закрытий является единственным препятствием для понимания программ Node, а также совершенно ненужным.
Для каждого:
a.doSomething(val, function(err,result){
b.doSomethingElse(result,function(err,res){
...
});
});
Всегда есть:
a.doSomething(val, onDoSomething);
function onDoSomething(err,res) {
...
}
Мое правило: новая функция обратного вызова, отличная от замыкания, требуется для любых трех уровней вложенности.
(Node.js действительно нуждается в руководстве по стилю.)
Ответ 3
После того, как вы узнали, как требуется работать в node.js(довольно просто), как было предложено Kooilnc
Вы можете посмотреть исходный код модулей, доступных для node.js:
https://github.com/joyent/node/wiki/modules
Если вы планируете использовать Express (один из наиболее надежных node.js framework) для разработки ваших первых приложений node, вы можете ознакомиться с его конкретными примерами здесь:
https://github.com/visionmedia/express/tree/master/examples (там также образец mvc)