Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在express应用程序中制作多个应用程序_Javascript_Django_Node.js_Express_Routes - Fatal编程技术网

Javascript 在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

我来自django的背景,基本上,该框架允许很多模块化代码。我在nodejs和express中创建了一个简单的博客引擎。然而,所有的路由最终都在我的主
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的创建者)制作了一个关于这个的视频