gpt4 book ai didi

javascript - 在 Express 应用程序中制作多个应用程序

转载 作者:行者123 更新时间:2023-11-29 22:10:32 26 4
gpt4 key购买 nike

我有 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 有关的所有事情都委托(delegate)给 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 的创建者)为此制作了一个视频,Modular web applications with Node.js and Express .

关于javascript - 在 Express 应用程序中制作多个应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18298602/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com