koa教程

1,528 阅读2分钟

「本文正在参与技术专题征文Node.js进阶之路,点击查看详情

前言

Node.js 是一个开源和跨平台的 JavaScript 运行时环境,诞生于 2009 年。

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

ps:我这里跳过node教程,直接开始koa,有好轮子就该去学习怎么用,熟练之后再考虑怎么实现,为什么这样实现,还能优化否等等?

安装

node版本必须大于7.6

可以使用node -v来查看node版本, Node.js官网,node安装就不细说了,前端coder也可以安装一个包管理,我习惯用nvm.

安装:

npm i koa

写个简单的demo

新建一个demo.js

内容放上5句


const Koa = require('koa');
const app = new Koa();
const main = ctx => {
  ctx.response.body = 'Hello World';
};

app.use(main);
app.listen(3000);

执行:

node demo.js

然后用浏览器打开http://localhost:3000/ 可以看见Hello world实现成功。

image.png

我们现在就是用koa框架,架设一个 HTTP 服务。并通过Koa提供的Context对象,控制返回给用户的内容。

控制返回内容

我们在上一步已经学会了使用koa写个demo,那如果你不想简单返回hello world,这时候你可以返回一个自己写的本地模版 直接在刚刚的demo.js修改内容,并新建一个demo.html

const Koa = require('koa');
const app = new Koa();
const fs = require('fs');

const main = ctx => {
  ctx.response.type = 'html';
  ctx.response.body = fs.createReadStream('./demo.html');
};
app.use(main);
app.listen(3000);  

可以发现 现在抛出的就是我们html的内容

image.png

当然除此 你也可以在抛出内容的时候进行一些定义,

const Koa = require("koa");
const app = new Koa();
const main = (ctx) => {
  if (ctx.request.accepts("html")) {
    ctx.response.type = "html";
    ctx.response.body = "<h1>Hello World</h1><h2>这是直接抛</h2>";
  }
};

app.use(main);
app.listen(3000);

image.png

小结

到此,你已经知道简单的使用koa输出内容了,机智的你肯定早就发现内容过于简单了吧,其实本来想输出中间间的用法。基本上,Koa 所有的功能都是通过中间件实现的,前面例子里面的main也是中间件。但是由于我也是在学习中,下次整理输出。

你的点赞就是对我最大的鼓励!