求对比 restify 和 express
发布于 10 年前 作者 jysperm 17438 次浏览 最后一次编辑是 8 年前 来自 问答

如题,我个人是偏好 express 的,但是团队里有一些其他人负责的项目用的是 restify, 我在改 restify 的项目的时候感觉很不爽,不知道是不是我没有掌握正确的使用方法,想听听大家的意见。

restify 上的「Why use restify and not express」里提到的理由似乎都不是很合理:

  • express 4 中已经对 RESTful 有很好的支持了
  • express 的模板引擎是可选的,不能因为 express 有模板引擎的支持就说 express 不适合 API Server 啊

然后 express 的 Router#param 是个很好用的东西,但是 restify 似乎没有这个功能;然后 restify 似乎有很好的 DTrace 支持,但是我不是很清楚这个东西的价值在哪方面。

10 回复

express 4 对于 restful 已经有很好的支持了,而且也已经很薄了。

真没感觉 restify 有什么好。

以我浅薄的理解:一个是API框架,一个是Web框架,后者有模板,需要预编译和其他的一些工作,也就是说在启动时耗时要比前者长,作为API server的话两者应该都可以,不过restify毕竟是专门的RESTful API框架,在稳定性、可调试和监控方面应该做的不错。 DTrace是应用监控用的,我也不太了解。

不起页面 -> restify 需要页面 -> express

restify的log很好用. (集成了bunyan) req中自带log, 传给其他函数很好用. Snap1.png

相对于 3.x 的 express 来说,restify 应该偏轻吧。

@xadillax 我看过 express 目前版本的代码,然后简单瞄过一下 restify 的代码,似乎 restify 更重量级一些。

基本上就是 @meteormatt 回答那些了,二者侧重点不同

restify针对API server的场景做了许多expressjs没有做的事,比如版本控制,错误提示,以及restify的一系列中间件,还有就是DTrace,频率限制,性能监控,日志等等。

都是没用的东西!

要说真正能帮到你的也就只有路由这一项,其ta的东西,你真正的项目,这些框架提供的功能都有限,确切的说是不够,非常的不够,而其API设计的又非常臃肿难扩展。

nodejs的几个框架,是看了jQuery的蛋糕做的甜,想学习jQuery,结果是搬起石头砸自己的脚。Yahoo一个开发曾经说过jQuery不适合开发大型项目,这话是对的,但是jQuery面对的是一个页面,一个页面再大也大不过天去,所以jQuery生存得很好。

但是这几个框架都是形而上的错误。模仿jQuery模仿的实在不敢恭维,如果能做到nodejs源码的纯净组装结构,也算是Java中的Spring了,只可惜这几个框架都不怎么样。

(其中最烂的设计,烂到不能再烂的莫过于Express的 set()和get() 这两个接口了!!! 这不只是猩猩和香蕉的纠结了,而且是要带上猩猩的整个星球!!! 当你和别人协作时,你压根不知道,你去get()的时候会得到什么样的稀奇古怪的东西!!! 尤其是和糟糕的人组队,你绝对会有无数次会说,这TM到底是什么???!!!)

(当我自己工作的时候,我是绝对不会选择这些框架的,当我和别人一起的时候,我不得不面向选择一个框架,但是也要造好一堆堆的围墙,尽可能的保护好自己的代码,并且尽可能的猜测对方又制造了什么样的神奇之物!!!)

我倒是期待Douglas哪天闲不住了,能出套像样的工具。

楼主大概是想问,在性能方面哪个在并发访问上更快、吞吐量更大。 国外有个测评说前1000个并发访问restify有点反应卡顿,但又有人测评没这回事。 总体来说Restify是专业做RESTful的 该更强大些, 除非你的项目里同时整合了网页和REST API就用Express 。

@tulayang 我能问大大一个问题吗,代码纯净组装 能提高性能吗?原谅这么白痴的问题

回到顶部