如何在node / mean / express应用程序中拆分index.js文件?

时间:2015-05-14 00:01:15

标签: javascript node.js express routes refactoring

我的node / mongo / express应用程序有一个令人难以置信的长index.js路由文件。这是结构。

app.js
/models
    Schedule.js
    Task.js
    etc...
/routes
    index.js
/public
    /javascript
    etc...

我想要这样的东西

app.js
/models
    Schedule.js
    Task.js
    etc...
/routes
    index.js
    schedule.js
    tasks.js
    etc...
/public
    /javascript
    etc...

如何拆分index.js文件?

例如,我试图在我的app.js文件中执行类似的操作

var routes = require('./routes/index');
var tasks  = require('./routes/tasks');

// later in the file

app.use('/', routes);
app.use('/tasks', tasks);

但是,当我只有index.js时,它没有找到我之前的任务路线。这可能是因为我采取了以" / task"开头的所有路线。来自我的routes / index.js并将它们放在routes / task.js中,但为什么表示不识别这个新文件中的路由?

任何建议都会有所帮助,我的朋友和我对整个意思的做事方式都很陌生,基本上拼凑了我们从各种教程中得到的东西。现在我们迫切需要重构,因为routes / index.js变得太长而无法使用。我尽力做直觉上有意义的事情,那里的任何人都可以就如何分解我们的路线文件提出建议吗?

1 个答案:

答案 0 :(得分:0)

嗯,这个问题的答案在于如何导入(在此上下文中需要)路由器实例。这些文件中的每一个都应该使用路由器对象或类似的东西进行module.exports,其中路由可以安装在您创建的应用实例上。

例如,在GitHub here的项目中查看我是如何做到的(有了自己的帮助),然后参考如何为每个路由导出路由器对象比如this例子。

作为另一个例子,这是一个我正在为here做出贡献的开源项目。请注意,我们有一个稍微类似的方法here,然后看一个示例路由声明(带有相应的导出)here