阅读 408

Koa2编写基本后端接口(一)

这是我参与新手入门的第2篇文章

简介

Koa2 是基于 Node.js 平台的一个轻量化框架,是由 Express 原班人马打造的,核心代码只有四个文件,本身不绑定任何中间件并支持 async 函数,Koa2 非常轻,开发起来很自由,简单易上手,适合前端自己开发项目时作为后端提供接口。

安装

新建文件夹进入并打开命令行 npm init -y or yarn init -y 快速初始化,推荐使用yarn

安装 Koa2

npm i koa

# or

yarn add koa
复制代码

Koa2是有一款名为 koa-generator 的脚手架,但是 Github 上很久没更新了,很多依赖版本太低,而且Koa2搭建比较简单,所以建议自己从零开始搭建一个初始模板。

Koa2一个基本的server很简单,根目录下新建app.js

// app.js
const Koa = require('koa');
const app = new Koa();

app.use(ctx => {
  ctx.body = 'Hello World';
});

app.listen(3000);
复制代码

终端运行 node app.js 即可启动服务 或者package.json中添加命令:

"scripts": {
    "dev": "node app.js"
}
复制代码

打开 http://localhost:3000/可以看见 Hello World

更推荐使用 nodemon 来启动app.js 这样每次修改文件保存后会自动重启服务,安装yarn add nodemon -D 开发依赖

路由

Koa2很简洁,路由需要单独安装对应的模块koa-router

yarn add koa-router
复制代码

路由简单应用

// app.js
const Koa = require('koa');
// router 引入的是一个方法
const router = require('koa-router')();
const app = new Koa();
const PORT = 3000;

// 接收两个参数 路由路径以及回调函数
router.get('/', ctx => {
  ctx.body = 'Hello World';
});

// 通过app.use启用路由,其他中间件也由app.use启用
app.use(router.routes(), router.allowedMethods());

app.listen(PORT, () => {
  console.log(`server is running at http://localhost:${PORT}`)
});
复制代码

路由抽离封装

// app.js
const Koa = require('koa');
const app = new Koa();
const PORT = 3000;
const router = require('./router');

app.use(router.routes(), router.allowedMethods());

app.listen(PORT, () => {
  console.log(`server is running at http://localhost:${PORT}`)
});
复制代码

根目录下router

/**
 * router.js
 * 路由回调函数单独抽出,不在router中操作业务逻辑,方便维护
 */
const router = new Router()
const controllers = require('./controllers')

router
  .get('/user', controllers.getUsersList)
  .get('/user/:id', controllers.getUsersById)
  .post('/user', controllers.addUsers)
  .put('/user/:id', controllers.updateUsers)
  .delete('/user/:id', controllers.delUsers)
  
module.exports = router
复制代码
文章分类
前端
文章标签