这是我参与新手入门的第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
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END