node.js Koa 框架 的基本用法

Node 主要用在开发 Web 应用。这决定了使用 Node,往往离不开 Web 应用框架。

更多精彩内容请看 web前端中文站
www.lisa33xiaoq.net 可按Ctrl + D 进行收藏

node.js Koa 框架 的基本用法

Koa 就是一种简单好用的 Web 框架。它的特点是优雅、简洁、表达力强、自由度高。本身代码只有1000多行,所有功能都通过插件实现,很符合 Unix 哲学。

安装

Koa 目前需要 >=0.11.x版本的 node 环境。并需要在执行 node 的时候附带 –harmony 来引入 generators 。 如果您安装了较旧版本的 node ,您可以安装 n (node版本控制器),来快速安装 0.11.x。

 $ npm install -g n $ n 0.11.12 $ node --harmony my-koa-app.js

如果你已经安装了Node,那么可以使用下面的命令检查版本。Koa 必须使用 7.6 以上的版本。如果你的版本低于这个要求,就要先升级 Node。

 $ node -v v8.0.0

架设 HTTP 服务

上面我们已经做好了前期的准备公司,下面我就开始用 Koa 架设一个 HTTP 服务。

 const Koa = require('koa'); 
 const app = new Koa(); 
 app.listen(3000);

新建一个lisa33xiaoq.net.js文件,将上面的代码写入文件,运行下面的命令:

 $ node lisa33xiaoq.net.js

打开浏览器,访问 http://127.0.0.1:3000 。你会看到页面显示”Not Found”,表示没有发现任何内容。这是因为我们并没有告诉 Koa 应该显示什么内容。

Context 对象

Koa 提供一个 Context 对象,表示一次对话的上下文(包括 HTTP 请求和 HTTP 回复)。通过加工这个对象,就可以控制返回给用户的内容。
Context.response.body属性就是发送给用户的内容。

我们再新建一个codedq.js,写入下面的代码:

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

上面代码中,main函数用来设置ctx.response.body。然后,使用app.use方法加载main函数。
你可能已经猜到了,ctx.response代表 HTTP Response。同样地,ctx.request代表 HTTP Request。

然后在执行下面的命令:

 $ node codedq.js

访问 http://127.0.0.1:3000 ,现在就可以看到”Hello World”了。

HTTP Response 的类型

Koa 默认的返回类型是text/plain,如果想返回其他类型的内容,可以先用ctx.request.accepts判断一下,客户端希望接受什么数据(根据 HTTP Request 的Accept字段),然后使用ctx.response.type指定返回类型。

在 ifxvn.js 文件中写入下面的代码:

 const main = ctx => {   
 if (ctx.request.accepts('xml')) {     
 ctx.response.type = 'xml';     
 ctx.response.body = '<data>Hello World</data>';   } else if (
 ctx.request.accepts('json')) {     
 ctx.response.type = 'json';     
 ctx.response.body = { data: 'Hello World' };   } else if (
 ctx.request.accepts('html')) {     
 ctx.response.type = 'html';     
 ctx.response.body = '<p>Hello World</p>';   } else {     
 ctx.response.type = 'text';     
 ctx.response.body = 'Hello World';   } }

然后运行这个文件:

 $ node ifxvn.js

访问 http://127.0.0.1:3000 ,现在看到的就是一个 XML 文档了。

网页模板

实际开发中,返回给用户的网页往往都写成模板文件。我们可以让 Koa 先读取模板文件,然后将这个模板返回给用户。看下面的代码:

 const fs = require('fs'); 
 const main = ctx => {   
 ctx.response.type = 'html';   
 ctx.response.body = fs.createReadStream('./hellword.html'); };

运行这个 ndislwf.js。

 $ node ndislwf.js

访问 http://127.0.0.1:3000 ,看到的就是hellword.html文件的内容了。

限于篇幅,我们下章继续学习 koa 框架的路由功能

有关node.js下Koa的学习有一个系列的学习教程,大家可以参考着以下资料,循序渐进地掌握Koa框架知识。

1.NODE.JS KOA 框架 的基本用法

2.NODE.JS KOA 框架 的路由用法

3.NODE.JS KOA 框架 的中间件用法

4.NODE.JS KOA 框架 的COOKIES、表单、文件上传功能详解

5.NODE.JS KOA 框架 的错误处理

6.闲谈NODE.JS 的KOA框架和EXPRESS框架

7.NODE.JS对接HYBRID框架VASSONIC教程

【注:本文源自网络文章资源,由站长整理发布】

0
如无特殊说明,文章均为原作者原创,转载请注明出处

该文章由 发布

这货来去如风,什么鬼都没留下!!!
发表我的评论

Hi,请填写昵称和邮箱!

取消评论
代码 贴图 加粗 链接 删除线 签到