美文网首页让前端飞前端大讲堂
手把手教你入门Node.js的Koa框架(1) - 洋葱圈模型

手把手教你入门Node.js的Koa框架(1) - 洋葱圈模型

作者: 前端大课堂 | 来源:发表于2018-11-18 13:44 被阅读0次

    Node.js是在2009年Ryan正式推出了基于JavaScript语言和V8引擎的开源Web服务器项目。

    Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。 通过利用 async 函数,Koa 帮你丢弃回调函数,并有力地增强错误处理。 Koa 并没有捆绑任何中间件, 而是提供了一套优雅的方法,帮助您快速而愉快地编写服务端应用程序。

    如何开始? 附上koa的官网: koa

    我们可以在本地建一个新的目录demo, 当然首先要装node.js, 具体可以到node.js的官网查看安装的步骤。 

        mkdir demo 

        cd demo 

        npm init -y 

        npm i koa --save 

    在目录中,新建一个文件index.js,如下代码,就是启动了一个http服务器。 

    const Koa = require('koa');

    const app = new Koa();

    app.use(async ctx => {

      ctx.body = 'Hello World';

    });

    app.listen(3000);

    运行node index.js,打开浏览器输入localhost:3000,就可以看到hello world. 

    在看一个例子,洋葱圈的中间件模型, 

    const Koa = require('koa');

    const app = new Koa();

    // logger

    app.use(async (ctx, next) => {

      console.log(1);

      await next();

      console.log(5);

      const rt = ctx.response.get('X-Response-Time');

      console.log(`${ctx.method} ${ctx.url} - ${rt}`);

    });

    // x-response-time

    app.use(async (ctx, next) => {

      console.log(2);

      const start = Date.now();

      await next();

      console.log(4);

      const ms = Date.now() - start;

      ctx.set('X-Response-Time', `${ms}ms`);

    });

    // response

    app.use(async ctx => {

      console.log(3);

      ctx.body = 'Hello World';

    });

    app.listen(3000);

    如上图, 最终输出是 1-2-3-4-5, 具体实现可以看koa-compose.  

    相关文章

      网友评论

        本文标题:手把手教你入门Node.js的Koa框架(1) - 洋葱圈模型

        本文链接:https://www.haomeiwen.com/subject/nxixfqtx.html