在 Node.js 中组织路由
我开始关注 Node.js。我也正在使用 Express。 我有一个问题 - 如何组织 Web 应用程序路由?所有示例都将所有 app.get/post/put()
处理程序放入 app.js 中,并且工作得很好。这很好,但如果我有的不仅仅是一个简单的硬件博客?是否可以做这样的事情:
var app = express.createServer();
app.get( '/module-a/*', require('./module-a').urls );
app.get( '/module-b/*', require('./module-b').urls );
换句话说
// file: module-a.js
urls.get('/:id', function(req, res){...}); // <- assuming this is handler for /module-a/1
- 我想要类似 Django 的 URLConf 但在 Node.js 中的东西。
I start to look at Node.js. Also I'm using Express.
And I have a question - how can I organize web application routes? All examples just put all this app.get/post/put()
handlers in app.js and it works just fine. This is good but if I have something more than a simple HW Blog? Is it possible to do something like this:
var app = express.createServer();
app.get( '/module-a/*', require('./module-a').urls );
app.get( '/module-b/*', require('./module-b').urls );
and
// file: module-a.js
urls.get('/:id', function(req, res){...}); // <- assuming this is handler for /module-a/1
In other words - I'd like something like Django's URLConf but in Node.js.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
我在 ´Smashing Node.js: JavaScript 中找到了一个简短的示例到处都是我真正喜欢的。
通过将
module-a
和module-b
定义为其自己的 Express 应用程序,您可以使用 connect app.use( ) :module-a.js
module-b.js
app.js
这将为您提供路线
I found a short example in ´Smashing Node.js: JavaScript Everywhere´ that I really liked.
By defining
module-a
andmodule-b
as its own express applications, you can mount them into the main application as you like by using connects app.use( ) :module-a.js
module-b.js
app.js
This would give you the routes
查看此处的示例:
https://github.com/visionmedia/express/tree/master /examples
'mvc' 和 'route-separation' 可能会有所帮助。
Check out the examples here:
https://github.com/visionmedia/express/tree/master/examples
'mvc' and 'route-separation' may be helpful.
还有 @tjholowaychuk(express 的创建者)的截屏视频,他使用了 @Vegar 描述的方法。
在 Vimeo 上提供:使用 Node.js 和 Express 的模块化 Web 应用程序
There also is a screencast of @tjholowaychuk (creator of express) where he uses the method @Vegar described.
Available on Vimeo: Modular web applications with Node.js and Express
另一种选择;
App.js
index.js
user.js
One more alternative;
App.js
index.js
user.js
查看有关express-routescan节点模块。该模块有助于为快速应用程序组织可维护的路由。你可以尝试一下。这对我来说是最好的解决方案。
Check out the article about the express-routescan node module. This module helps to organize maintainable routing for express application. You can try it. This is the best solution for me.
有几种方法可以做到:
1:
在模块中,您可以只实现 1 个函数来处理 http 方法:
2:如果您想通过子应用程序而不是模块/中间件来处理路由:
There are several ways to do:
1:
In the modules you can just implement 1 function to handle the http methods:
2: if you want to handle the route by a sub-app instead of a module/middleware :