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

标签 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 时那样找到我的任务路线。这可能是因为我从routes/index.js中取出了所有以“/task”开头的路由并将它们放在routes/task.js中,但是为什么express无法识别这个新文件中的路由?

任何建议都会有所帮助,我和我的 friend 对整个meanjs的做事方式非常陌生,并且基本上将我们从各种教程中获得的内容拼凑在一起。现在我们迫切需要重构,因为 paths/index.js 太长而无法使用。我尽力做直观上有意义的事情,有人可以就如何分解我们的路线文件提供建议吗?

最佳答案

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

例如,看看我在 GitHub here 上的一个项目中是如何做到这一点的(即在 yeoman 的帮助下) ,然后引用如何为每个路由导出路由器对象,如 this示例。

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

关于javascript - 如何在node/mean/express应用程序中拆分index.js文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30227167/

相关文章:

javascript - 如何使用 angularjs ng-repeat 从 json 获取特定值并在 html 中显示

javascript - Electron - 如何将 base64 dataUrl 保存到文件

javascript - 通过删除安全信息使 Node server.js 文件更安全

javascript - 使用 AngularJS 进行子域路由

javascript - 将计算数组的最大值和最小值之间的数字的总和。例如 : [1, 4] 应返回 1+2+3+4=10

mysql - 为不同环境配置不同 Node MySQL连接

javascript - Mongoose.model ('model_name' ) 当 mongoose 模型模式文件中需要函数时返回空对象

javascript - Node.js 表示 post 参数始终未定义

javascript - 清除输入字段的建议框

javascript - Selenium 使用 javascript 获取元素的类属性