• 欢迎访问web前端中文站,JavaScript,CSS3,HTML5,web前端demo
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏web前端中文站吧

node.js Koa 框架 的基本用法

JAVA web前端中文站 2年前 (2017-08-09) 960次浏览 已收录 0个评论

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

更多精彩内容请看 web 前端中文站
http://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 教程

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


web 前端中文站 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:node.js Koa 框架 的基本用法
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址