基于Promise的节点的http框架?

节点框架通常通过(err, result)callback来工作。

Node是否有一个基于承诺的http框架,并且有一个健康的社区和积极的开发(例如express)?

在HTTP客户端,有新的fetch API https://fetch.spec.whatwg.org/

fetch()允许你创build类似于XMLHttpRequest(XHR)的networking请求,主要区别是它使用了Promises,它使得一个更简单和更清洁的API,避免了callback地狱,并且必须记住XMLHttpRequest的复杂API

https://developers.google.com/web/updates/2015/03/introduction-to-fetch

一些实现:

这里有一些示例代码:

 fetch('/some/url', {method: 'get'}) .then(function(response) { // rejoice \o/ }) .catch(function(err) { // error :-( }); 

https://github.com/mzabriskie/axios

基于Promise的浏览器和node.js的HTTP客户端

示例代码:

 // Make a request for a user with a given ID axios.get('/user?ID=12345') .then(function (response) { console.log(response); }) .catch(function (response) { console.log(response); }); 

我今天也有同样的问题,而且我也是通过kriskowalfind了q-io 。 它使用Q.js来承诺包装文件系统io以及服务器和http客户端。

我还没有尝试过,但在这一点上它似乎并没有build立一个活跃的社区。 可悲的是,在这个充满回望金字塔末日的世界里,

你可能会对Q promise库的作者Kris Kowal写的Joey感兴趣。 没有一个大的社区,但是Kris经常在freenode的#montage irc频道上提供帮助。

2016年末还不甚平。

其他人已经跳过了Koa.js,它支持基于“asynchronous/等待”的生成器的承诺。

然而,我认为你的问题的目标是一个更深层次的整合,这可能是我所做的:一个HTTP服务器返回请求作为承诺,然后可以链接在一起。

它的基础是承诺代表了可以一次完成的asynchronous任务,因此服务器就像一个承诺stream,我封装在一个承诺唤起的callback。

它还是一个很酷的潜力(即对于较小的专业项目),因为它只有很less的代码(当前概念位于0依赖)

有关这个更详细的信息库: https : //github.com/rsxdalv/unframed其中包括build设过程的步行。 用代码实际上可以运行Node.js v6.6

对于HTTP客户端,我喜欢http://www.npmjs.org/package/httpinvoke

对于HTTP服务器,我喜欢https://github.com/mjackson/mach ; 这很棒!

然后再次,我也不是一个如此巨大的粉丝httpinvoke,我的工作,没关系。 但是我认为这个API比我们需要的更加复杂,我觉得很难debugging。 我可能会错过一些东西。

或者,我使用推荐kew (快速承诺实现)来包装callback样式方法。