2013-04-05 41 views
16

节点框架通常通过(err, result)回调工作。基于Promise的节点的http框架?

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

+1

无论我使用nodejs函数的异步工作流,我都使用Q的'denodeify'。我也尝试了一些外部库函数,它对我来说工作得很好。请尝试'Q.denodeify '。 – 2013-05-31 05:48:53

+0

也许你应该澄清。我相信这个问题需要一个使用promise的http服务器的nod​​e.js框架,而不是一个基于promise的http请求库,其中一些答案似乎正在解决。 – Chris 2016-06-20 21:20:33

回答

3

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

4

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

我还没有尝试过,但在这一点上它似乎没有围绕它建立的活跃社区。在这个充满回望金字塔末日的世界里,让人难过的是,

+1

哈哈“末日回拨金字塔” – slezica 2013-05-28 23:58:08

1

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

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

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

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

6

有基于https://github.com/mzabriskie/axios

无极HTTP客户端在浏览器和Node.js的

示例代码:

// 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); 
    }); 
12

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

fetch()允许你做类似的XMLHttpRequest(XHR)的网络请求,主要区别是[它]使用的承诺,这使得一个简单和清晰的API,避免回调地狱,不必记住的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 :-(
    }); 
+2

为什么这会被投票?这不能回答这个问题吗?这是一个Node并承诺基于HTTP客户端,但也许我错过了一些... – wires 2016-02-05 20:26:09

+1

同意。从我投票! – 2016-02-27 00:40:29

+1

问题是关于服务器端 – Ebuall 2017-06-27 11:01:58

2

还不大,即使在2016年后期

其他人跳过Koa.js它不支持的承诺基于“异步/等待其发电机”。

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

它基于承诺表示可以一次完成的异步任务的想法,因此服务器就像一个承诺流,我将其封装在一个带有承诺的回调中。

它仍然是更冷静的潜在的(即较小的,专业化的项目)作为有很少的代码给它(和目前的概念坐镇0依赖)

有在仓库中更多这方面的细节:https://github.com/rsxdalv/unframed 其中包括建筑过程的演练。使用实际可以运行的代码Node.js v6.6