美文网首页让前端飞前端大讲堂
手把手教你入门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