Koa　是一个新的　web　框架,由Express　幕后的原班人马打造,致力于成为　web　应用和　API　开发领域中的一个更小、更富有表现力、更健壮的基石。通过利用　async　函数,Koa　帮你丢弃回调函数,并有力地增强错误处理。Koa　并没有捆绑任何中间件,而是提供了一套优雅的方法,帮助您快速而愉快地编写服务端应用程序。　require('babel-register');//　应用的其余　require　需要被放到　hook　后面const　app　=　require('./app');　Koa　应用程序是一个包含一组中间件函数的对象,它是按照类似堆栈的方式组织和执行的。Koa　类似于你可能遇到过的许多其他中间件系统,例如　Ruby　的Rack　,Connect　等,然而,一个关键的设计点是在其低级中间件层中提供高级“语法糖”。　这提高了互操作性,稳健性,并使书写中间件更加愉快。　这包括诸如内容协商,缓存清理,代理支持和重定向等常见任务的方法。　尽管提供了相当多的有用的方法　Koa　仍保持了一个很小的体积,因为没有捆绑中间件。　const　Koa　=　require('koa');const　app　=　new　Koa();app.use(async　ctx　=>　{　ctx.body　=　'Hello　World';});app.listen(3000);　Koa　中间件以更传统的方式级联,您可能习惯使用类似的工具　-　之前难以让用户友好地使用　node　的回调。然而,使用　async　功能,我们可以实现　“真实”　的中间件。对比　Connect　的实现,通过一系列功能直接传递控制,直到一个返回,Koa　调用“下游”,然后控制流回“上游”。　下面以　“Hello　World”　的响应作为示例,当请求开始时首先请求流通过　x-response-time　和logging　中间件,然后继续移交控制给　response　中间件。当一个中间件调用　next()　则该函数暂停并将控制传递给定义的下一个中间件。当在下游没有更多的中间件执行后,堆栈将展开并且每个中间件恢复执行其上游行为。　const　Koa　=　require('koa');const　app　=　new　Koa();//　loggerapp.use(async　(ctx,　next)　=>　{　awa