Koa2 搭建个人网站框架

881 阅读2分钟

构建项目

  • 安装koa-generator
 yarn global add koa-generator
  • 使用koa-generator生成koa2项目 -e为使用ejes为模版
 koa2  -e projectname 
  • 开始项目
 cd project 
 yarn install

目录结构

koa2目录.png

重构目录

当然这样的目录显然不符合我们当下的开发方式,我们要把它变成我们熟悉的MVP模式

  • pulic 目录为资源目录可以不用动
  • bin 目录是重要配置文件也不动
  • 新建app目录并在里面新建模块admin(用于博客后台管理),inde(用于博客正式内容),route(用于管理路由),db.js(用于配置链接数据库参数)
  • 在每个模块都新建controller,model, view 目录这样mvc模型就出来了
  • 删除其他目录及里面的文件

koa2-2.png

寻找优秀模版

为了节省开发成本,我们需要去下载一些优秀的模版我用到的的是amazeUI的模版文件。将静态文件都拷贝到public文件夹,html模版文件改为ejs后缀放入index模块的view中 WX20190704-202126@2x.png 同时需要修改模版文件里面静态资源的路径使之正确引入public的文件

构建路由,这里为了分离路由和处理逻辑我们将处理逻辑放在controller目录下作为controller层,然后在router里面引入 WX20190704-222216@2x.png

下面就是controller层文件的写法,koa2采用的是async/await的写法进行异步请求。并引入model。 WX20190704-222707@2x.png

现在mvc模式下的V和C已经搭建好了,就差M了,所以首先我们要安装一下Sequelize用于链接数据库,以下命令安装sequelize,点击可以去了解一下sequelize,这里不作过多介绍。

$ yarn add sequelize

在app文件夹下新建db.js用于配置数据库

var Sequelize = require('sequelize')

module.exports = new Sequelize('yzgblog','yzgblog','yzg_blog',{
    host:'你的数据库地址',
    dialect:'mysql',
    pool: {
        max: 5,
        min: 0,
        idle: 10000
    }
})

WX20190704-223420@2x.png

在model文件夹下新建模型层如users(用户),blogs(博客表)等等。引入db.js配置

let Sequelize = require('sequelize')
let sequelize = require('../../db')
let User = sequelize.define('users',{
    nickname:{
        type:Sequelize.STRING
    },
    avater:{
        type:Sequelize.STRING
    },
    email: {
        type: Sequelize.STRING
    }
})
module.exports = User;

至此项目的大致框架,mvc分层就都搭建起来了 WX20190704-231054@2x.png

WX20190704-231109@2x.png