美文网首页
koa服务器搭建基础

koa服务器搭建基础

作者: 橙子_80c3 | 来源:发表于2017-04-14 12:34 被阅读0次

之前我一直使用rails搭建网站。rails与koa的基本理念很相似,都是基于中间件提供一层层的服务。所不同的是,rails有很多内置的中间件,这使得开发者只需要关注MVC模块以及页面路由。而Koa这相对灵活很多,除了nodejs提供的http模块服务,其它的中间件都需要自己添加。

如果对于网站开发不熟练,往往会不知道该添加哪些中间件。这篇文章就结合流程图讲解一下开发网站大致需要的中间件。

Screen Shot 2017-04-14 at 11.20.21.png

安全检查

检查request的header,只允许符合安全的请求通过。安全检查最流行的库是koa-helmet。可以通过koa-helmet做下面这些检查:

  • clickjacking
  • 移除X-Powered-By
  • 限制只通过https
  • xss攻击过滤
  • 伪造证书攻击
    更多的检查大家可以查看koa-helmet的文档。

数据预处理

http模块并不会解析传过来的数据。像表格里的数据,文件,json,xml都需要手动处理。数据预处理模块就是对这些数据进行处理的过程。处理完之后,可以通过键值在ctx.request里读取这些数据。比较流行的数据预处理模块可以参见koa-bodyparser

静态资源

某些资源可以直接通过静态资源,这样可以省去路由,控制器,等的开销。可以通过koa-static设置静态资源路径。当路径匹配时,可以直接找到静态资源。

路由

根据URL寻找对应的控制器以及视图。比较常见的中间件有(koa-route)[https://www.npmjs.com/package/koa-route], (koa-router)[https://www.npmjs.com/package/koa-router]

身份验证

进行身份验证,并提供简单的API来确认是否验证成功,log in以及log out。这个模块相对比较复杂,我也需要花更多时间来研究。用的比较多的有koa-passport, koa-jwt

业务逻辑与数据获取

这个模块是网站开发者主要投入精力的地方。其具体实现随网站的需求不同而变化。

视图

选择视图模版。常见的模版有pug(jade), handlebars, hbs等。详情请看koa-pug, [koa-handlebars](https://www.npmjs.com/package/koa-handlebars], koa-hbs

缓存

通过设置etag来判断内容是否改变。若etag未变化,则返回304给客户端。否则返回带有内容的回复。可以使用(koa-etag)[https://www.npmjs.com/package/koa-etag]与(koa-conditional-get)[https://www.npmjs.com/package/koa-conditional-get]来实现基于etag的缓存

压缩

将最终的输出打包。比较流行的打包库为koa-compress

其他中间件

  1. logger
    koa-logger在请求来临和返回时输出在控制台输出简单的信息。

  2. error
    koa-error可以对服务器抛出的异常进行捕捉,并设置模版进行渲染

  3. session
    koa-session在服务器端设置网站的session

参考资料

  1. koajs github wiki

相关文章

  • koa服务器搭建基础

    之前我一直使用rails搭建网站。rails与koa的基本理念很相似,都是基于中间件提供一层层的服务。所不同的是,...

  • koa实现简单图片上传

    搭建koa基础结构 新建一个文件夹 执行npm init -y 安装koa koa-router 新建app.js...

  • 【koa2】koa-static-router 中间件搭建静态资

    koa中间件 koa-static-router中间件搭建静态资源服务器, 实现多个&&多层路由加载静态资源 源码...

  • Koa 基础项目搭建

    转载自: Node.js 蚕食计划(五)—— Koa 基础项目搭建 Koa 是由 Express 原班人马打造的超...

  • koa应用初见

    这篇教程主要介绍koa2构建服务器,简单引用 本教程的版本:要格外注意版本号 案例:简单利用koa2搭建服务器 文...

  • 2016iwantolearn

    es6相关知识 rn基础学习 koa搭建网站 ...

  • nodejs 搭建项目流程

    nodejs 搭建项目流程 1、搭建项目需要的插件 koa / koa-router / nodemon【...

  • Koa基础环境搭建

    demo地址 1.Koa是什么?   Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造, ...

  • 使用Koa开发微信公众号

    一、使用koa2-generator搭建koa项目 1.全局安装Koa脚手架 npm install koa-ge...

  • koa2.x学习3

    Koa 应用生成器以及 Koa 路由模块化 Koa 应用生成器Koa 搭建模块化路由/层级路由 Koa 应用生成器...

网友评论

      本文标题:koa服务器搭建基础

      本文链接:https://www.haomeiwen.com/subject/spjwattx.html