初始化项目
1 | npm init |
安装koa
1 | npm i koa |
创建入口文件
项目根目录下新建 main.js
,在 main.js
中写入以下代码
1 | // 导入 koa |
配置 package.json 启动项目
在 package.json 中的 script 字段内添加 start 命令
1 | "scripts": { |
控制台运行 npm start
启动项目,浏览器打开 http://127.0.0.1:10086
可以看到输出 hello world
将 require 导入改成 import 导入
安装 babel
,控制台输入 npm i @babel/core @babel/node @babel/preset-env
修改 start
启动命令
1 | "scripts": { |
在项目根目录下新建 Babel
配置文件 babel.config.js
,在配置文件内写入以下内容
1 | const presets = [ |
将 main.js
中的 const koa = require('koa');
改为 import Koa from 'koa';
重新运行 npm start
启动项目
安装 nodemon 进行热重载
1 | npm i nodemon |
修改 start
启动命令
1 | "scripts": { |
重新运行 npm start
启动项目; 之后只要进行文件保存就会重启项目
使用 Koa-router 进行路由分发
官方文档: https://github.com/ZijianHe/koa-router
使用 koa-body 解析请求参数
官方文档:https://github.com/dlau/koa-body
文件上传的时候需要配置允许上传的文件大小
1 | app.use(koaBody({ |
使用 koa-logger 查看请求日志
官方文档:https://github.com/koajs/logger
手动实现一个 CORS 跨域中间件
Koa 的中间件本质就是一个函数,当使用 app.use()
去加载这个函数的时候,Koa 会给这个函数传递两个参数 ctx
和 next
,中间件逻辑处理完成后调用 next()
即可。
因为 CORS 是我们给客户端返回的时候添加的内容,所以我们可以先执行 next()
再进行逻辑处理
1 | const cors = async (ctx, next) => { |
中间件写完了,然后使用 app.use
挂载即可
1 | app.use(cors); |