koa2 从入门到进阶之路 (一)
首先我们先来了解一下 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 从入门到进阶之路 (一)的更多相关文章
- koa2 从入门到进阶之路 (二)
之前的文章我们已经能够在本地启动一个简单的项目,本章我们来看一下 koa 路由,get 传值,动态路由. 一.Koa 路由 路由(Routing)是由一个 URI(或者叫路径)和一个特定的 HTTP ...
- koa2 从入门到进阶之路 (五)
之前的文章我们介绍了一下 koa 中使用 ejs 模板及页面渲染,本篇文章我们来看一下 koa post提交数据及 koa-bodyparser中间件. 在前端页面中,不免会用到 form 表单和 p ...
- koa2 从入门到进阶之路 (四)
之前的文章我们介绍了一下 koa 中间件 以及 koa 中间件的洋葱图执行流程,本篇文章我们来看一下 koa 中使用 ejs 模板及页面渲染. 在 Express 中,我们经常会用 ejs 模板来渲染 ...
- koa2 从入门到进阶之路 (三)
之前的文章我们介绍了一下 koa 路由,get 传值,动态路由,本节我们看一下 koa 中间件 以及 koa 中间件的洋葱图执行流程. 一.什么是 Koa 的中间件 通俗的讲:中间件就是匹配路由之前或 ...
- koa2 从入门到进阶之路 (七)
之前的文章我们介绍了一下 koa koa-static静态资源中间件,本篇文章我们来看一下 koa 中 cookie 和 session 的使用. cookie 是存储于访问者的计算机中的变量.可以让 ...
- koa2 从入门到进阶之路 (六)
之前的文章我们介绍了一下 koa post提交数据及 koa-bodyparser中间件,本篇文章我们来看一下 koa-static静态资源中间件. 我们在之前的目录想引入外部的 js,css,img ...
- Python 从入门到进阶之路(一)
人生苦短,我用 Python. Python 无疑是目前最火的语言之一,在这里就不再夸他的 NB 之处了,本着对计算机编程的浓厚兴趣,便开始了对 Python 的自学之路,并记录下此学习记录的心酸历程 ...
- React 从入门到进阶之路(四)
之前的文章我们介绍了 React 绑定属性( 绑定class 绑定style).引入图片 循环数组渲染数据.接下来我们将介绍 React 事件,方法, React定义方法的几种方式 获取数据 改 ...
- React 从入门到进阶之路(三)
之前的文章我们介绍了 React 创建组件.JSX 语法.绑定数据和绑定对象.接下来我们将介绍 React 绑定属性( 绑定class 绑定style).引入图片 循环数组渲染数据. 上一篇中我们 ...
随机推荐
- jquery 获得某一组name的id并合并
var attachmentids = $("input[name='attachmentid']").map(function(){return $(this).val()}). ...
- 如何查看 JAR 包的源代码
ava 项目的编译文件经常被打包成 JAR(Java Archive,Java 归档文件)文件,当然,作为学习,有时候也非常想看到这个 JAR 被打包前的源代码是怎么样的. 下面提供几种查看 JAR ...
- node爬虫(简版)
做node爬虫,首先像如何的去做这个爬虫,首先先想下思路,我这里要爬取一个页面的数据,要调取网页的数据,转换成页面格式(html+div)格式,然后提取里面独特的属性值,再把你提取的值,传送给你的页面 ...
- C语言:哲学家吃饭问题
//五个哲学家围坐在一起,两人之间都放有一个叉子,意大利面需要2个叉子吃,哲学家吃饭时候叉子只能拿左右手,哲学家除了吃饭时间其他时间都在思考 #include <stdio.h> #inc ...
- docker参考文档
docker 使用笔记 http://www.cnblogs.com/xguo/p/3829329.html docker数据存储 | 单线程 http://opjasee.com/2014/06/2 ...
- 学习python的第十天(内置算法:列表数据类型,元祖数据类型,字典数据类型)
5.8自我总结 1.列表类型内置算法 1.必须掌握 1.按索引取值(正向取值+反向取值),即可存也可以取 #用于取其中一个值 name = ['yang','wen','yi'] ##正方向取wen, ...
- python--管道, 事件, 信号量, 进程池
一 . 管道 (了解) from multiprocessing import Process, Pipe def f1(conn): # 管道的recv 里面不用写数字 from_main_proc ...
- LeetCode(150) Evaluate Reverse Polish Notation
题目 Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, ...
- LeetCode(72) Edit Distance
题目 Given two words word1 and word2, find the minimum number of steps required to convert word1 to wo ...
- React中css的使用
网页的布局.颜色.形状等UI展示方式主要是由Css进行设置,在ReactJs中也是一样.ReactJs中的Css结构方式与传统的Web网页类似,但依然存在一些差异.ReactJs中Css文件本身的编写 ...