1.创建vue3-admin-server文件夹

  1. cd vue3-admin-server
  2. npm init -y

2.安装依赖

  1. npm i @koa/cors @koa/router koa koa-json koa-bodyparser koa-logger

安装ts相关包

  1. npm i -D @types/koa @types/koa-bodyparser @types/koa-json @types/koa-logger @types/koa__cors @types/koa__router typescript

安装node工具

  1. npm i ts-node nodemon -D

image.png

3.创建入口文件

src/app.ts

  1. import Koa from 'koa'
  2. import cors from '@koa/cors'
  3. import logger from 'koa-logger'
  4. import bodyparser from 'koa-bodyparser'
  5. // routes
  6. import authRoutes from './routes/auth'
  7. // koa应用实例
  8. const app = new Koa()
  9. // middlewares
  10. app.use(cors()) // 支持跨域
  11. app.use(bodyparser({ // 解析请求体
  12. enableTypes: ['json', 'form', 'text']
  13. }))
  14. app.use(logger()) // 开发日志中间件
  15. // routes
  16. // 用户验证路由(登录 注册)
  17. app.use(authRoutes.routes()).use(authRoutes.allowedMethods())
  18. // listen
  19. const port = process.env.PORT || '3003'
  20. app.listen(port, () => {
  21. console.log(`server listening on ${port}`)
  22. })
  23. app.on('error', (err) =>
  24. console.error('server error', err)
  25. )

4.创建routes管理路由

src/routes是专门来存放router

src/routes/auth.ts

  1. import Router from '@koa/router'
  2. const router = new Router({
  3. prefix: '/auth'
  4. })
  5. router.get('/test', async ctx => {
  6. ctx.body = 'auth test router'
  7. })
  8. export default router

5.配置npm script

  1. {
  2. ...
  3. "scripts": {
  4. "serve": "nodemon -i ./node_modules/ --exec \"ts-node\" src/app.ts"
  5. }
  6. }

6.运行

  1. npm run serve

效果图
image.png

本节参考源码

https://gitee.com/brolly/vue3-admin-server/commit/826495934b7cef9ab044359b8da261092409f6ed