Koa学习笔记

发布时间:2024年01月11日

1、npm 初始化

npm init -y
  • 生成 package.json 文件,记录项目的依赖

2、git 初始化

git init
  • 生成 .git 隐藏文件夹,.git 的本地仓库
  • 创建 .gitignore 文件,添加不提交文件的名称

3、创建 ReadMe.md 文件

  • 记录项目笔记

4、搭建项目

  • 安装 Koa 框架
npm install koa

5、编写最基本的 app

  • 在项目根目录创建 src 文件夹,并文件夹中创建 main.js 文件,文件内容如下:
// 导入包
const Koa = require("koa");

// 端口
const post = 3000;

// 实例化对象
const app = new Koa();

// 中间件
app.use((ctx, next) => {
  ctx.body = "hello world";
});

// 监听端口
app.listen(post, () => {
  console.log("server is running on http://localhost:3000");
});
  • 启动方法
node src/main.js

6、自动重启服务

  • 使用 nodemon 工具
  • 安装
npm install nodemon
  • 修改项目启动脚本
    • 修改 package.json 文件中的 scripts 节点,添加如下代码:
"scripts":{
    "serve":"nodemon ./src/main.js"
}
  • 然后项目启动方法为:
npm run serve

7、读取配置文件

  • 安装 dotenv ,读取根目录中的 .env 文件,将配置写 process.env
npm install dotenv
  • 在项目根目录下创建 .env 的配置文件,代码如下:
APP_PORT = 8000; // 8000 端口
  • 在项目根目录 src 下创建 config 文件夹,并文件夹中创建 config.default.js 文件,内容如下:
const dotenv = require("dotenv");

dotenv.config();

module.exports = process.env; // 导出
  • 改写 main.js 文件
// 导入包
const Koa = require("koa");

// 导入,从配置文件中获取的端口
const { APP_PORT } = require("./config/config.default");

// 实例化对象
const app = new Koa();

// 中间件
app.use((ctx, next) => {
  ctx.body = "hello api";
});

// 监听端口
app.listen(APP_PORT, () => {
  console.log(`server is running on http://localhost:${APP_PORT}`);
});

8、添加路由

  • 路由:根据不同的 URL ,调用对应处理函数
  • 安装 koa-router
npm install @koa/router
  • 步骤
    • 1、导入包
    const Router = require('@koa/router')
    
    • 2、实例化对象
    const indexRouter = new Router()
    
    • 3、编写路由
    indexRouter.get('/', (ctx, next) => {
        ctx.body = 'hello index'
    })
    
    • 4、注册中间件
    app.use(indexRouter.routes())
    

9、目录结构优化

  • http 服务和 app 业务拆分

  • 在项目根目录下 src 目录下创建 app 文件夹,并创建 index.js 文件(管理业务相关的文件),内容如下:
// 导入包
const Koa = require('koa')

// 实例化对象
const app = new Koa()

// 导入用户路由
const userRouter = require('../routers/userRoute')

// 注册中间件
app.use(userRouter.routes())

module.exports = app
  • 改写 main.js 文件,内容如下:
// 导入,从配置文件中获取的端口
const { APP_PORT } = require('./config/config.default')

const app = require('./app')

// 监听端口
app.listen(APP_PORT, () => {
    console.log(`server is running on http://localhost:${APP_PORT}`);
})
  • 将路由和控制器拆分

  • 路由:解析 URL ,分布给控制器对应的方法
  • 控制器:处理不同的业务
  • 在项目根目录下 src 目录中创建 controller 文件夹,并创建 user.controller.js 文件,内容如下:
// 创建类
class UserController {
    /**
     * 用户注册接口
     * @param {*} ctx 
     * @param {*} next 
     */
    async register(ctx, next) {
        ctx.body = "用户注册接口"
    }

    /**
     * 用户登录接口
     * @param {*} ctx 
     * @param {*} next 
     */
    async login(ctx, next) {
        ctx.body = "用户登录接口"
    }
}

module.exports = new UserController()
  • userRouter.js 文件中引入 user.controller.js 文件,内容如下:
const Router = require('@koa/router')

const { register, login } = require('../controller/user.controller')

const router = new Router({ prefix: '/users' }) // 前缀

/**
 * 注册接口
 */
router.post('/register', register)

/**
 * 登录接口
 */
router.post('/login', login)


module.exports = router
  • 然后通过 apiPost 接口测试工具测试接口
http://localhost:8000/users/login
文章来源:https://blog.csdn.net/qq_33365152/article/details/135492869
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。