{"action":"created","issue":{"url":"https://api.github.com/repos/CitadelJS/core/issues/9","repository_url":"https://api.github.com/repos/CitadelJS/core","labels_url":"https://api.github.com/repos/CitadelJS/core/issues/9/labels{/name}","comments_url":"https://api.github.com/repos/CitadelJS/core/issues/9/comments","events_url":"https://api.github.com/repos/CitadelJS/core/issues/9/events","html_url":"https://github.com/CitadelJS/core/issues/9","id":163798328,"number":9,"title":"driver vs native vs under the hood X","user":{"login":"otbe","id":3391052,"avatar_url":"https://avatars.githubusercontent.com/u/3391052?v=3","gravatar_id":"","url":"https://api.github.com/users/otbe","html_url":"https://github.com/otbe","followers_url":"https://api.github.com/users/otbe/followers","following_url":"https://api.github.com/users/otbe/following{/other_user}","gists_url":"https://api.github.com/users/otbe/gists{/gist_id}","starred_url":"https://api.github.com/users/otbe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/otbe/subscriptions","organizations_url":"https://api.github.com/users/otbe/orgs","repos_url":"https://api.github.com/users/otbe/repos","events_url":"https://api.github.com/users/otbe/events{/privacy}","received_events_url":"https://api.github.com/users/otbe/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/CitadelJS/core/labels/discussion","name":"discussion","color":"eb6420"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2016-07-05T08:36:11Z","updated_at":"2016-07-05T09:47:05Z","closed_at":null,"body":"Discussion shifted from gitter to github :)\r\n\r\nWe should decide early in development which way to go. This are the possibilities I see as of now:\r\n\r\n1. Use drivers\r\nA driver hides the framework specifics for express/koa/XX. Users can decide which one to use. They can continue to use existing middlewares such bodyParsers and loggers. Citadel adds features like auth, caching,routing, .... via ES6/7 in a preconfigured way for easy use. \r\nhttps://gist.github.com/otbe/ea31a5f89b3fd428afefefb81812b8b7\r\n\r\n2. Use express or koa or XX under the hood\r\nWe are using express, koa or what else under the hood and users may be able to provide middleware in the specific style. But we can use our own pre-configured middleware and each features (e.g. auth) can add their own middleware. Besides this its the same as 1.\r\n\r\n3. Write our own dirty http/net, route handling, middleware logic\r\nMost freedom, most work, error prone. Keep in mind that express & co are well designed and battle tested.\r\n\r\nA side note: no matter which way to go we should never expose low-level objects (req, res for express or httpServer for http/net) to controllers.  If needed we should introduce our own ```request``` / ```response``` objects  (maybe added to the context aka ```this``` of controller methods).\r\n\r\nAny thoughts?\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/CitadelJS/core/issues/comments/230434492","html_url":"https://github.com/CitadelJS/core/issues/9#issuecomment-230434492","issue_url":"https://api.github.com/repos/CitadelJS/core/issues/9","id":230434492,"user":{"login":"lholznagel","id":4436411,"avatar_url":"https://avatars.githubusercontent.com/u/4436411?v=3","gravatar_id":"","url":"https://api.github.com/users/lholznagel","html_url":"https://github.com/lholznagel","followers_url":"https://api.github.com/users/lholznagel/followers","following_url":"https://api.github.com/users/lholznagel/following{/other_user}","gists_url":"https://api.github.com/users/lholznagel/gists{/gist_id}","starred_url":"https://api.github.com/users/lholznagel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lholznagel/subscriptions","organizations_url":"https://api.github.com/users/lholznagel/orgs","repos_url":"https://api.github.com/users/lholznagel/repos","events_url":"https://api.github.com/users/lholznagel/events{/privacy}","received_events_url":"https://api.github.com/users/lholznagel/received_events","type":"User","site_admin":false},"created_at":"2016-07-05T09:47:05Z","updated_at":"2016-07-05T09:47:05Z","body":"Would say that the adapters translate into citadel.\r\nFor example the express adapter would take the server object where everything is registered and translates it to citadel. This object is given to citadel and then the server gets started from citadel and not express."}}
{"actor":{"display_login":"lholznagel"}}