快递&将路由拆分为单独的文件

时间:2014-05-23 10:29:11

标签: javascript node.js express

我有一个遵循标准Express 4格式的快速应用程序。即依赖于顶部,然后是app config,然后是路由,最后是listen。

我试图将我的路线分成分类文件(例如,routes / authentication.js)但是应用程序没有执行依赖项,所以当我运行node app.js应用程序时因为CLI说护照没有在routes / authentication.js中定义,它不是,因为它在app.js的顶部定义了所有其他依赖项。

我想我的问题是我该如何分享'分享'依赖关系,所以我不必在每个文件的顶部列出它们?这就是我需要单独文件的方式:

app.js

require('./app/routes/authentication')(app);

路由/ authentication.js

module.exports = function (app) {
    [routes]
}

1 个答案:

答案 0 :(得分:3)

如果在您已经有权访问应用的情况下经常使用相关性模块,则可以在应用中设置值,例如: app.config = require('./config')。 (但是,为了清楚起见,通常最好在该模块的顶部指定特定模块的依赖关系。除了为每个模块添加更多代码之外没有任何其他危害。)

此外,虽然可以使用构造函数并将app传递给此函数,但您也可以使用模块来实现此目的。确保您在创建它时导出app,即var app = module.exports = express();,然后从其他库中导出var app = require('../app');。您将在一些Express示例中看到这一点。