Как правильно структурировать код nodejs

Я играл с node.js на некоторое время, и я действительно понял, насколько это потрясающе. Тем не менее, одна вещь, которую я пытаюсь понять, - это то, как я должен структурировать свой код, чтобы он поддерживался. Большинство обучающих программ, которые я видел в Интернете, имеют все JS в одном файле, что вряд ли является хорошим способом управления вашим кодом. Я знаю, что в действительности нет такой вещи, как "класс" в javascript, но есть (стандартный) способ форматировать мой код для ремонтопригодности таким же образом, как я бы структурировал проект PHP, например

Ответ 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)