首先我们先来了解一下 Koa 是什么,https://koa.bootcss.com/,这是 Koa 的官方网站,映入眼帘的第一句就是 Koa -- 基于 Node.js 平台的下一代 web 开发框架。

在学习 Koa 之前我们应对 Node.js 有一定的基础,我们都知道:

Node.js 是一个异步的世界,官方 API 支持的都是 callback 形式的异步编程模型,这会带来许多问题,例如:1、callback 嵌套问题 2、异步函数中可能同步调用 callback 返回 数据,带来不一致性。为了解决以上问题 Koa 出现了。

koa 是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。 使用 koa 编写 web 应用,可以免除重复繁琐的回调函数嵌套, 并极大地提 升错误处理的效率。koa 不在内核方法中绑定任何中间件, 它仅仅提供了一个轻量优雅的 函数库,使得编写 Web 应用变得得心应手。开发思路和 express 差不多,最大的特点就是 可以避免异步嵌套。

Koa2 的安装与使用对 Node.js 的版本也是有要求的,Node.js 是有要求的,它要求 Node.js 版本高于 V7.6。因为 node.js 7.6 版本 开始完全支持 async/await,所以才能完全支持 Koa2。

安装 Koa

安装 Koa 框架和我们以前安装其他模块是一样的。

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

--save 参数,表示自动修改 package.json 文件,自动添加依赖项。

接下来我们就实战来看一下如何安装使用一个最简单的 Koa 应用并在本地运行。

首先我们先创建一个我们要开发的项目的目录中,然后运行  npm init ,为我们的项目起个名字,然后一路回车,这样就会在我们的项目目录中创建一个最基本的 package.json 的文件,接下来安装我们要使用的 koa 模块  npm install koa --save ,这样我们就引入了 koa 木块,接下来就和 Express 模块是一样的操作流程,我们在项目目录中创建一个 app.js,在 app.js 中写我们的程序就可以了。

最终我们创建的项目目录如下:

我们在 app.js 中写一个简单的案例:

 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 模块,然后创建一个 koa 实例,接下来和 Express 一样的是创建一个中间价,然后写一个异步函数来向前端页面返回数据。

Express 的写法在这里就不做过多解释了,我们来看一下 koa 写法,我们通过 async ()=>{} 的异步方法与前端建立连接,里面会有一个 cxt 的参数,我们可以通过 ctx.body 的形式向前端发送数据。

app.listen(3000); 来监听 3000 端口,我们将程序运行起来,在前端输入 localhost:3000

这样我们就实现了一个最基本的 koa 的小案例,接下来我们会深入介绍 koa 框架。

koa2 从入门到进阶之路 (一)的更多相关文章

  1. koa2 从入门到进阶之路 (二)

    之前的文章我们已经能够在本地启动一个简单的项目,本章我们来看一下 koa 路由,get 传值,动态路由. 一.Koa 路由 路由(Routing)是由一个 URI(或者叫路径)和一个特定的 HTTP ...

  2. koa2 从入门到进阶之路 (五)

    之前的文章我们介绍了一下 koa 中使用 ejs 模板及页面渲染,本篇文章我们来看一下 koa post提交数据及 koa-bodyparser中间件. 在前端页面中,不免会用到 form 表单和 p ...

  3. koa2 从入门到进阶之路 (四)

    之前的文章我们介绍了一下 koa 中间件 以及 koa 中间件的洋葱图执行流程,本篇文章我们来看一下 koa 中使用 ejs 模板及页面渲染. 在 Express 中,我们经常会用 ejs 模板来渲染 ...

  4. koa2 从入门到进阶之路 (三)

    之前的文章我们介绍了一下 koa 路由,get 传值,动态路由,本节我们看一下 koa 中间件 以及 koa 中间件的洋葱图执行流程. 一.什么是 Koa 的中间件 通俗的讲:中间件就是匹配路由之前或 ...

  5. koa2 从入门到进阶之路 (七)

    之前的文章我们介绍了一下 koa koa-static静态资源中间件,本篇文章我们来看一下 koa 中 cookie 和 session 的使用. cookie 是存储于访问者的计算机中的变量.可以让 ...

  6. koa2 从入门到进阶之路 (六)

    之前的文章我们介绍了一下 koa post提交数据及 koa-bodyparser中间件,本篇文章我们来看一下 koa-static静态资源中间件. 我们在之前的目录想引入外部的 js,css,img ...

  7. Python 从入门到进阶之路(一)

    人生苦短,我用 Python. Python 无疑是目前最火的语言之一,在这里就不再夸他的 NB 之处了,本着对计算机编程的浓厚兴趣,便开始了对 Python 的自学之路,并记录下此学习记录的心酸历程 ...

  8. React 从入门到进阶之路(四)

    之前的文章我们介绍了  React 绑定属性( 绑定class  绑定style).引入图片  循环数组渲染数据.接下来我们将介绍 React 事件,方法, React定义方法的几种方式 获取数据 改 ...

  9. React 从入门到进阶之路(三)

    之前的文章我们介绍了 React 创建组件.JSX 语法.绑定数据和绑定对象.接下来我们将介绍 React 绑定属性( 绑定class  绑定style).引入图片  循环数组渲染数据. 上一篇中我们 ...

随机推荐

  1. SQLyog连接数据库 提示错误plugin caching_sha2_password could not be loaded

    1.打开mysql cmd 2.执行语句 ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; # ...

  2. java在线聊天项目0.8版 实现把服务端接收到的信息返回给每一个客户端窗口中显示功能

    迭代器的方式会产生锁定 服务器端增加发送给每个客户端已收到信息的功能 所以当获取到一个socket,并打开它的线程进行循环接收客户端发来信息时,我们把这个内部类的线程Client保存到集合List&l ...

  3. ZJOI2018游记Round2

    Day0 趁着空档还溜回班上了一节物理课:瓢泼之中在9:00赶往余姚,车程3h+-- 中饭在一家饭馆,味道海星. 晚上和ykh,chj,xzt溜去吃一鸣和烧烤.一鸣不错,烧烤的话我因为口腔溃疡没怎么吃 ...

  4. CSS3-文本-text-overflow

    text-overflow 语法: text-overflow : clip | ellipsis 取值说明: 1.clip:表示不显示省略标记(...),而只是简单的裁切,需要在一定的高度范围内配合 ...

  5. js解析器

    1>js的预解析 找var function 参数等 所有的变量,在正式运行代码前,都提前赋了一个值:未定义 所有的函数,在正式运行代码前,都是整个函数块. 遇到重名的:只留一个 如果变量与函数 ...

  6. 爬虫练习四:爬取b站番剧字幕

    由于个人经常在空闲时间在b站看些小视频欢乐一下,这次就想到了爬取b站视频的弹幕. 这里就以番剧<我的妹妹不可能那么可爱>第一季为例,抓取这一番剧每一话对应的弹幕. 1. 分析页面 这部番剧 ...

  7. 数据结构之--图(Graphics)

    1.1:图的定义和术语   图是一种比线性表和树更为复杂的数据结构.在线性表中,数据元素之间仅有线性关系,每个元素仅有一个直接前驱和一个直接后继:在树形结构中,数据元素之间有着明显的层次关系,并且每一 ...

  8. stm32单片机的C语言优化

    对于有些单片机,自身容量是很有限的,有的仅仅只有8k.16k的flash等,但是对32位mcu来说,这点空间实在有点小.不像计算机一样内存和rom都很多,因此有时候就需要进行代码优化.大家都知道,单片 ...

  9. PAT Basic 1063

    1063 计算谱半径 在数学中,矩阵的“谱半径”是指其特征值的模集合的上确界.换言之,对于给定的 n 个复数空间的特征值 { a​1​​+b​1​​i,⋯,a​n​​+b​n​​i },它们的模为实部 ...

  10. Ubuntu Software Center has closed unexpectly解决方案

    打开软件中心Ubuntu Software Center的时候 出现crash report :The application Ubuntu Software Center has closed un ...