{"action":"created","issue":{"url":"https://api.github.com/repos/strongloop/express/issues/2781","labels_url":"https://api.github.com/repos/strongloop/express/issues/2781/labels{/name}","comments_url":"https://api.github.com/repos/strongloop/express/issues/2781/comments","events_url":"https://api.github.com/repos/strongloop/express/issues/2781/events","html_url":"https://github.com/strongloop/express/issues/2781","id":112996754,"number":2781,"title":"Feature request: friendly exposure of req/res logic for HTTP/2 push promises","user":{"login":"ronkorving","id":631240,"avatar_url":"https://avatars.githubusercontent.com/u/631240?v=3","gravatar_id":"","url":"https://api.github.com/users/ronkorving","html_url":"https://github.com/ronkorving","followers_url":"https://api.github.com/users/ronkorving/followers","following_url":"https://api.github.com/users/ronkorving/following{/other_user}","gists_url":"https://api.github.com/users/ronkorving/gists{/gist_id}","starred_url":"https://api.github.com/users/ronkorving/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ronkorving/subscriptions","organizations_url":"https://api.github.com/users/ronkorving/orgs","repos_url":"https://api.github.com/users/ronkorving/repos","events_url":"https://api.github.com/users/ronkorving/events{/privacy}","received_events_url":"https://api.github.com/users/ronkorving/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/strongloop/express/labels/5.x","name":"5.x","color":"ededed"},{"url":"https://api.github.com/repos/strongloop/express/labels/ideas","name":"ideas","color":"d7e102"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-10-23T10:48:02Z","updated_at":"2015-12-09T19:52:45Z","closed_at":null,"body":"HTTP/2 has a great feature called push promises. It allows you to push files from server to client pro-actively because you know the client will need it. To do this responsibly, you can send along headers that can inform the client about the ETag for example, so the client can abort the file download if it's already in cache. This is all great, but very hard to deal with Express, because I would want to use all the configured Express logic in the `push()` API that (in my case) node-spdy expose.\r\n\r\nIn other words, I would love to combine `res.sendFile()` with `res.push()` (that node-spdy exposes). This is currently pretty much impossible as far as I can see. If Express could give more access to the internals of how a file would be delivered without actually delivering it (say, provide me with headers and a file stream I could pipe to res.push) that would be a major help. Alternative solutions of course welcome :)"},"comment":{"url":"https://api.github.com/repos/strongloop/express/issues/comments/163371700","html_url":"https://github.com/strongloop/express/issues/2781#issuecomment-163371700","issue_url":"https://api.github.com/repos/strongloop/express/issues/2781","id":163371700,"user":{"login":"kevinSuttle","id":95672,"avatar_url":"https://avatars.githubusercontent.com/u/95672?v=3","gravatar_id":"","url":"https://api.github.com/users/kevinSuttle","html_url":"https://github.com/kevinSuttle","followers_url":"https://api.github.com/users/kevinSuttle/followers","following_url":"https://api.github.com/users/kevinSuttle/following{/other_user}","gists_url":"https://api.github.com/users/kevinSuttle/gists{/gist_id}","starred_url":"https://api.github.com/users/kevinSuttle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kevinSuttle/subscriptions","organizations_url":"https://api.github.com/users/kevinSuttle/orgs","repos_url":"https://api.github.com/users/kevinSuttle/repos","events_url":"https://api.github.com/users/kevinSuttle/events{/privacy}","received_events_url":"https://api.github.com/users/kevinSuttle/received_events","type":"User","site_admin":false},"created_at":"2015-12-09T19:52:45Z","updated_at":"2015-12-09T19:52:45Z","body":"Is there a label or over-arching Issue mapped to http/2 support? I'd love to have it by default in Express."}}