Javascript 在express应用程序中制作多个应用程序
我来自django的背景,基本上,该框架允许很多模块化代码。我在nodejs和express中创建了一个简单的博客引擎。然而,所有的路由最终都在我的主Javascript 在express应用程序中制作多个应用程序,javascript,django,node.js,express,routes,Javascript,Django,Node.js,Express,Routes,我来自django的背景,基本上,该框架允许很多模块化代码。我在nodejs和express中创建了一个简单的博客引擎。然而,所有的路由最终都在我的主app.js文件中,或者更确切地说是app.coffee,因为我在我的nodejs应用程序中使用了coffeescript,它遵循javascript 所以,假设我的路线是这样的: app.get('/', index.index) app.get('/users', user.list) app.get('/blog', blog.blogLis
app.js
文件中,或者更确切地说是app.coffee
,因为我在我的nodejs应用程序中使用了coffeescript,它遵循javascript
所以,假设我的路线是这样的:
app.get('/', index.index)
app.get('/users', user.list)
app.get('/blog', blog.blogList)
app.get('/blog/:id(\\d{5})', blog.blogEntry)
现在,这里的问题是,如果我想按类别对它们进行排序,那么就会发生这种情况,然后我必须向同一个文件添加另一个app.get
函数。代码:
app.get('/blog/categores/:cat(\w+), blog.someotherview)
如果我想根据时间添加排序,例如:
app.get('/blog/time/:year(\\d{4}), blog.someYearView)
例如,我想做的是将有关/blog
的所有事情委托给blog.js
处理。理想情况下,如何从主app.js
文件中获取所有这些路由
通过使用django中的
include()
方法,您可以轻松做到这一点。在app.js
文件中创建一个Express应用程序,就像您习惯的那样。然后,在blog.js
文件中执行同样的操作。在app.js
中导入并使用它,如下所示:
var blog = require('./blog');
var app = express();
app.use(blog);
在您的blog.js
文件中,您只需导出应用程序:
var app = express();
app.get('/blog/...', ...);
module.exports = app;
换句话说:任何Express应用程序都可以用作任何其他Express应用程序的中间件,因此您可以创建子应用程序
希望这有帮助
PS:TJ Holowaychuk(Express的创建者)制作了一个关于这个的视频