koa2 从入门到进阶(一)-入门

    |     2020年2月1日   |   koa2, web前端技术   |     0 条评论   |    1108

Koa 是基于 Node.js 的下一代 Web 开发框架,官网第一句就是这句话。官方站点:https://koa.bootcss.com/。学 Koa 之前应对 Node.js 有一定基础。

Node.js 官方 API 以 callback 异步为主,容易遇到两件事:回调嵌套,以及异步函数里同步调用 callback 造成的不一致性。Koa 就是为解决这些问题出现的。

Koa 由 Express 原班人马打造,内核不绑定中间件,只提供一套更小、更有表现力的函数库。开发思路和 Express 接近,最大特点是用 async/await 避开异步嵌套,并提升错误处理效率。

一、为什么需要 Koa2

Koa2 要求 Node.js 版本高于 v7.6。从 7.6 起 Node 才完整支持 async/await,Koa2 才能完整体验。Express 写法里常见 req / res;Koa 把请求和响应收进一个 ctx(context),用 ctx.body 往前端写数据。

对比项 Express Koa2
异步写法 callback / 中间件 next async/await,避免嵌套
上下文 req、res 分开 统一的 ctx
内核 内置较多能力 不绑定中间件,按需安装
写响应 res.send("hello word") ctx.body = "hello word"

二、安装与项目目录

安装方式和其它 npm 模块一样。加 --save 会自动改 package.json,写入依赖。

npm install --save koa / cnpm install --save koa

实战步骤:先建项目目录,执行 npm init 一路回车,得到基础 package.json;再 npm install koa --save 引入 Koa;最后在目录里建 app.js 写程序。流程和 Express 项目类似。

最终项目目录如下:

1345718-20190411113808689-644683350

三、最小可运行示例

在 app.js 里写一个最简单的案例:先 require("koa"),再 new koa() 得到实例,然后挂一个异步中间件,用 ctx.body 返回数据,最后 app.listen(3000) 监听端口。

var koa = require("koa");

var app = new koa();

// Express 写法
// app.use(function (req, res) {
//     res.send("hello word")
// });

app.use(async (ctx) => {
    ctx.body = "hello word"
});

app.listen(3000);

Koa 这边用 async (ctx) => {} 与前端建立连接。参数是 ctx,不是 Express 的 req/res。把程序跑起来,浏览器访问 localhost:3000 就能看到返回内容:

1345718-20190411120120718-1910115550

这样就完成了一个最基本的 Koa 小案例。后续文章会继续讲路由、中间件、模板和请求参数。

原文链接:https://www.cnblogs.com/weijiutao/p/10688805.html。参考:https://www.itying.com/koa/article-index-id-78.html。

一句话总结:Koa2 用 ctx + async/await 替代 Express 的回调嵌套;Node ≥ 7.6 安装 koa 后,app.use 里写 ctx.body 再 listen(3000) 就能跑起来。

转载请注明来源:koa2 从入门到进阶(一)-入门
本文链接地址:https://ai.zhousir.top/?p=2372
回复 取消