Как правильно структурировать код nodejs - PullRequest
11 голосов
/ 20 мая 2011

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

Ответы [ 3 ]

12 голосов
/ 20 мая 2011

Я бы добавил, что с точки зрения удобства сопровождения, я считаю, что типичный стиль глубоко вложенных колбэков с использованием замыканий является единственным серьезным препятствием для понимания программ Node, а также является совершенно ненужным.

Для каждого:

a.doSomething(val, function(err,result){
  b.doSomethingElse(result,function(err,res){
    ...
  });
});

Всегда есть:

a.doSomething(val, onDoSomething);

function onDoSomething(err,res) {
  ...
}

Мое эмпирическое правило таково: для любых целей требуется новая функция обратного вызова без замыканиятри уровня вложенности.

(Node.js действительно нуждается в руководстве по стилю.)

6 голосов
/ 20 мая 2011

Afaik, вы можете использовать require, чтобы включить ваши собственные js-файлы (содержащие экспортированные методы), используя:

var req = require('./someJsFile');

В someJsFile.js вы можете экспортировать такие методы:1008 * И в вашем основном файле вы можете обратиться к такому методу, используя req.someMethod()

Таким образом, вы можете разделить ваш код на разные файлы, которые вы require из какого-то центрального файла js.

Вот статья , объясняющая node.js require

2 голосов
/ 20 мая 2011

После того, как вы узнали, как require работает в node.js (довольно просто), как предлагает Kooilnc

Вы можете взглянуть на исходный код модулей, доступных для Node.js:

https://github.com/joyent/node/wiki/modules

Если вы планируете использовать Express (один из самых надежных фреймворков node.js) для разработки приложений для первого узла, вы можете посмотреть его конкретные примеры здесь:

https://github.com/visionmedia/express/tree/master/examples (есть также образец mvc)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...