| Expressjs | rrestjs | |
| 架构思路 | SOAP,简单对象访问协议架构 | ROA,面向资源架构 |
| 代码风格 | Express自身代码风格 | Node.js 原生API风格 |
| 封装程度 | 重度封装,配置繁多,2次开发难度大 | 轻度封装,配置简单,最小化污染命名空间,易于2次开发 |
| 自定义开发、生产环境 | √(直接配置) | √(加载不同配置文件) |
| http,https服务器 | √(进行2次封装,express API) | √(原生node.js API支持) |
| 自动处理Favicon 请求 | √ | √ |
| IP过滤访问 | X | √ |
| 自动输出静态文件 | √ | √ |
| 请求路由 | 路由表路由 | Restful风格,拼装URI |
| 自动404、500 | √ | 部分自动404,500 |
| Get参数获取 | √ | √ |
| POST参数获取 | √ | √ |
| 文件上传管理 | √ | √ |
| Cookie支持 | √ | √ |
| Session支持 | √(提供redis存储) | √(提供redis存储) |
| 多进程同步共享session | X | √ |
| 部分特定页面使用session | X | √ |
| 客户端请求的IP地址 | X | √ |
| 正规http协议Response头 | √ | √ |
| Request对象的封装 | √ | √ |
| 响应buffer和string | √ | √ |
| 响应json | √ | √ |
| 根据api自动响应jsonp | √ | √ |
| 支持String响应deflat, gzip | X | √ |
| 静态文件etag,modify缓存 | √ | √ |
| 静态文件 2级缓存加速 | X | √ |
| 静态文件选择性支持delate, gzip | X | √ |
| Redirect跳转 | √ | √ |
| Render模版支持 | Jade,haml,ejs,coffeekup,jqtmp | 仅支持jade |
| Jade模版html缓存 | X | √ |
| 日志功能 | √ | √(内置log4js) |
| Cluster多进程加速 | 半自动,需要代码控制 | √(内置ClusterPlus) |
| Cluster多进程多任务管理 (比如:开启多进程,监听多端口执行多任务) | X | √(内置ClusterPlus) |
| Cluster子进程意外挂掉自动启动 | 半自动,需要代码控制 | √(内置ClusterPlus) |
| 开发模式,指定代码文件或文件 夹代码改动自动重启 | X | √(内置ClusterPlus) |
| 数据库连接配置 | X | √(内置 mongodb-native) |
| 数据库连接池封装 | X | √(内置 generic-pool) |
| 提供便捷接口,压缩合并css和js文件 | X | √ |
| 根据配置文件自动生成缓存文件夹以及其他文件夹 | X | √ |
| 自动加载nodejs模块 | X | √(按需自动加载modules文件夹下的模块) |
| 额外功能 | 输出错误、路由表管理、局部视图输出等 | logger分等级和自动切分存储,异步代理等 |
| Helloworld性能(1000并发,下同) | 18452 req/sec | 20734 req/sec |
| 小静态文件输出性能 | 9555 req/sec | 10411 req/sec |
| Jade模版输出 (未开启html缓存) | 10609 req/sec | 12584 req/sec |
转发至微博
转发至微博
评论