服务端编程——初始koa

服务端编程

零、初识服务器编程

  • 服务器编程一般由python、Java、nodejs等,但前端一般使用的都是nodejs来写

  • nodejs就是可以让JavaScript脱离浏览器运行,之前的js只能在浏览器中运行,就不能做一些关于资源文件的操作,现在可以脱离浏览器就可以有更多的可能性,nodejs就可

  • 绝大多数后端都在:

    • 读写数据库:前端是不能直接在数据库中取出数据的
    • 编写API:给前端使用来拿到数据
  • 一般有 commonJS(同步 服务器)、AMD(异步 浏览器)、promise

一、koa

koa基本使用

其实官网都说的挺好的了,就说下现在要用的一些操作吧:

Koa 应用程序是一个包含一组中间件函数的对象,它是按照类似堆栈的方式组织和执行的

  1. 导入koa:const Koa = require('koa'):注意这里要用ES5的require方式导入,而不用ES6的import方式
  2. 实例化koa对象:const app = new Koa()
  3. koa对象的listen方法来监听某个服务器:app.listen(3000),这里是监听3000端口
  4. 注册中间件函数koa.use(中间件函数名)

中间件函数

  • 在koa中,要想在用户对服务器发起请求时做点什么,就要写在中间件函数里(类似于 响应时的动作)

  • 若注册了多个中间件,则运行它们的运行顺序遵循——洋葱模型,但这也是要有条件的,洋葱模型是最容易想到和理解的模型,所以只要遵循它就可使问题变得简单一些,条件就是加上async和await标识

    • async和await标识细节就不多说了,这两个标识符就是为了让函数能够同步的执行代码,不会出现意料之外的结果 详见

  • 中间件常见写法如下,ctx是上下文信息,里面包含了请求的所有信息(如这里是path是路径,method是请求方式),next是下一个中间件函数

app.use((ctx, next) => {
  if (ctx.path === '/classic/latest' && ctx.method === 'GET') {
    console.log('123')
  }
  next()
})

koa-router 路由库

  • koa-router可以处理客户向服务器发送的请求,其实这就是个路由中间件;
  • 先引入koa-router模块,再进行实例化,例子如下:
const Router = require('koa-router')
const router = new Router()

// 写法一
router.get('/book/hot_list', async (ctx, next) => {
  ctx.body = '/book/hot_list'
})

// 写法二
app.use((ctx, next) => {
  if (ctx.path === '/book/hot_list' && ctx.method === 'GET') {
    ctx.body = '/book/hot_list'
  }
  next()
})
  • 上面例子中的两种写法含义是一样的,但上面那种就有助于模块化、更加清晰直观,且不用把所有的判断都放在一个文件里;
  • 同时router实例还有post、put、get等方法,对应http各种请求方式
posted @ 2020-10-21 19:42  TRY0929  阅读(127)  评论(0编辑  收藏  举报