如何组织大型节点应用

时间:2017-07-17 18:01:34

标签: node.js code-structure

情境:

我想保持一个干净的结构,比如

/org/myapp/events/Events.js
/org/myapp/events/EventDispatcher.js
/org/myapp/game/Game.js
/org/myapp/characters/Worker.js
/org/myapp/characters/Warrior.js
/org/myapp/characters/Elite.js
etc etc

目前我正在使用requiremodule.exports。它有效,但我很好奇社区在我所阅读的内容之外做了什么。

问题:

组织中型到大型js应用程序(30多个课程)的好方法是什么,同时保持良好的性能和整体组织处理?

当前实施

根据我上面的例子,我会做

Events.js

class Events {
    ...
}

module.exports = Events;

然后为每个使用Events

的班级
const Events = require("/org/myapp/events/Events.js");

1 个答案:

答案 0 :(得分:1)

您正在做的工作正常,但我个人更喜欢让每个目录(例如/org/myapp/events)都有一个index.js文件,该文件导出文件夹中的类,如下所示:

// /org/myapp/events/index.js
module.exports = {
  EventDispatcher: require('./event-dispatcher.js')
}

然后消耗代码可能需要整个目录一次,然后根据需要访问部件:

const events = require('./events');

const dispatcher = new events.EventDispatcher();