一、搭建项目
1. 安装 Koa 框架
yarn add koa
2. 引入
const Koa = require("koa"); const app = new Koa();
3. 配置中间件
// ctx 所有http的上下文 // 配置中间件 app.use((ctx, next) => { ctx.body = "hello api"; });
4. 监听端口
app.listen(3000, () => { console.log("Server on 3000"); });
二、项目基本优化
1. 配置文件
安装 dotenv 包
yarn add dotenv
创建 .env 文件
APP_PORT = 8000
在当前目录下创建 config 文件夹,用来保存配置文件,并添加config.default.js
const dotenv = require("dotenv") dotenv.config() // 暴露 module.exports = process.env
改写 主进程内容
// 引包 const Koa = require("koa"); const app = new Koa(); // env const { APP_PORT } = require("./config/config.default"); // ctx 所有http的上下文 // 配置中间件 app.use((ctx, next) => { ctx.body = "hello api"; }); app.listen(APP_PORT, () => { console.log("Server on 3000"); });
三、添加路由(处理不同的url请求)
路由:根据不同的 URL,调用对应处理函数
1. 安装 koa-router
yarn add koa-router
koa-router 官方文档
步骤:
导入包
实例化对象
编写路由
注册中间件
2. 导入包
const Router = require("koa-router")
3. 实例化对象
const indexRouter = new Router()
4. 编写路由
indexRouter.get('/',(ctx,next)=>{ ctx.body = "hello index"})
5. 注册中间件
app.use(indexRouter.routes())
这里需要特别注意的是,配置中间件的时候需要调用 routes 方法,不能直接传入对象
app.use(indexRouter) // 错误
会报错
四、处理路由文件
如果我们要将全部的路由文件写在 main.js 文件中,会造成代码的混乱,这一点在 express 中也遇到了,我们可以将路由请求放在一个单独的文件夹中router,分别处理不同场景的路由
1. 引入包
例如我们需要一个专门处理用户路由的文件 user.route.js ,这个文件专门处理用户路由
同时一个很重要的点:我们可以给 Router 构造函数传递一个对象{prefix: "/users"} ,用来配置请求的前缀
const router = new Router({ prefix: "/users" });
这样配置后,当我们请求 /路径时,实际上请求的是 /users/
2. 编写路由
我们在 user.route.js 中编写路由
const Router = require("koa-router");const router = new Router({ prefix: "/users" });router.get("/", (ctx, next) => { ctx.body = " hello users";});
并暴露出 router
module.exports = router;
3. 改写 main.js
将暴露的 router 引入 main.js 中,引入中间件即可
// 引包const Koa = require("koa");const app = new Koa();// envconst { APP_PORT } = require("./config/config.default"