SpringMVC的RequestMapping 参数有很多,可以根据 参数 返回值类型 等映射
@RequestMapping(value="/",params="",header=""...)
而Express的Router 我看了下文档,好像除了请求的Method,和URL,其它参数是不能用来路由的。
感觉SpringMVC的Mapping更清晰一些
尝试了好几种关键词Google,没找到有用的信息,难道要自己实现吗?
请问有没有类似的类库...
1
breeswish 2015-07-30 22:41:45 +08:00
expressjs 主要的思想是中间件…和 SpringMVC 的思想还是有一些区别的..
看看这个?https://www.npmjs.com/package/express-route-versioning 不过代码上就没那么简洁明了了 |
2
czheo 2015-07-30 23:00:48 +08:00
看用下面if else就够了,挺直观的把。
req.headers req.params req.query |
3
Niphor OP |
5
zonghua 2015-07-30 23:34:52 +08:00
express够灵活啊,默认都没有给session中间件
|
7
zonghua 2015-07-31 00:18:50 +08:00
@czheo bodyParser 有啊,我说的是用express-generator生成的没有session和cookie。
|
8
ysmood 2015-07-31 04:34:21 +08:00
@Niphor 试试 NoFlow 吧,支持全部这些,且更简洁灵活,更能应对复杂的异步问题: https://github.com/ysmood/noflow
复杂 route 的示例: https://github.com/ysmood/noflow/blob/master/examples/routes.js |
9
bramblex 2015-07-31 09:55:10 +08:00
所以我自己造了一个不需要自己手写路由的框架。
|
10
Niphor OP |
11
ysmood 2015-07-31 12:06:31 +08:00
@Niphor express.js 也是要考虑顺序的,这个和我一样,都需要考虑设置 route 的顺序,而我这个可以排序和调换路由的顺序,而 express.js 不行。 MediaType 这种的判断都可以啊?直接写在 headers selector里就行了,这也是我这个库能做到而 express 做起来麻烦的地方。
我就是觉得 express 的 route 选择功能太弱才想自己写个的,因为我需要做 proxy,express 不适合做这个,它只适合做 http server |
12
ysmood 2015-07-31 12:21:20 +08:00
@Niphor 给你发的代码是纯 js 啊?而且就算你觉得不够,selector 可是是一个函数,于是几乎可以完成任何复杂的选择功能。
|
13
Niphor OP @ysmood 嗯例子是纯js的,但是我不确定可用哪些参数和参数有哪些可用类型,所以去看了下Proxy的实现...
主要是SpringMVC细分了好几个参数 ``` @RequestMapping(value = "/{id}", method = RequestMethod.GET, params = "",consumes = "",produces ="" ``` 然后 一时脑热,忘记了 MediaType就是head里的... 不好意思 |
15
Niphor OP |