手把手带你入门Koa+sequelized完成注册登录+TodoList功能 day1

671 阅读1分钟
  1. 项目基础搭建

  1. 项目初始化

    npm init -y

    //安装koa

    npm install koa
  1. 编写最基础的app

//main.js
const Koa = require('koa')

const app = new Koa()

app.use((ctx,next)=>{
    ctx.body = 'hello world'
})

app.listen(3000,()=>{
    console.log("server is running on http://localhost:3000");
})
  1. 测试

  1. 项目基本优化

  1. 自动重启服务

//安装nodemon工具(自动重启服务)
npm install nodemon

//package.json
"scripts": {
    "dev" : "nodemon ./src/main.js",
    "test": "echo "Error: no test specified" && exit 1"
  },
  
 //执行项目
 npm run dev
  1. 读取配置文件

  • 安装dotenv,读取根目录中的.env文件,将配置写process.env中
npm install dotenv
  • 创建.env文件
APP_PORT=8000
  • 创建src/config/config.default.js
const dotenv = require('dotenv')

dotenv.config()

// console.log(process.env.APP_PORT);

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 world'
})

app.listen(3000,()=>{
    console.log(`server is running on http://localhost:${{APP_PORT}}`);
})
  1. 添加路由

路由:根据不同url,调用对应处理函数

安装koa-router

npm i koa-router
  • 步骤:
    1. 导入包
    2. 实例化对象
    3. 编写路由
    4. 注册中间件
  1. 编写路由

创建src/router目录,编写user.route.js

const Router = require('koa-router')

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

// GET  /users/
router.get('/',(ctx,next)=>{
    ctx.body = "hello users"
})

module.exports = router
  1. 改写main.js

const Koa = require('koa')
const {APP_PORT} = require("./config/config.default")

const app = new Koa()

const userRouter = require('./router/user.route')

app.use(userRouter.routes())

app.use((ctx,next)=>{
    ctx.body = 'hello world'
})

app.listen(APP_PORT,()=>{
    console.log(`server is running on http://localhost:${APP_PORT}`);
})
  1. 目录结构优化

  1. 将http服务和app业务拆分

创建src/app/index.js

const Koa = require('koa')

const app = new Koa()

const userRouter = require('../router/user.route')

app.use(userRouter.routes())

app.use((ctx,next)=>{
    ctx.body = 'hello world'
})

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}`);
})
  1. 将路由和控制器拆分

路由:解析URL,分布给控制器对应的方法

控制器:处理不同的业务

改写user.route.js

 const Router = require('koa-router')

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

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

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

//注册接口
router.post('/register',register)
//登录接口
router.post('/login',login)

module.exports = router

创建controller/user.controller.js

class UserController {
    async register(ctx,next) {
        ctx.body = "用户注册成功"
    }
    async login(ctx,next) {
        ctx.body = "用户登录成功"
    }
}

module.exports = new UserController