2-1、开始
技术选型 | 种类 | 最终选择 |
---|---|---|
框架选型 | koa2 vs express vs egg | koa2 |
数据库选型 | mysql vs mongodb | mysql |
登录技术 | session vs jwt | session |
前端页面 | ejs后端模板引擎 vs vue/react前端框架 | ejs后端模板引擎 |
注:开发后端阶段,先使用 ejs 模板引擎,进行联通。后期会使用 vue 开发前端界面。
2-2、介绍koa2-创建项目
(1)安装koa2
- npm install koa-generator -g
- koa2 -e koa2-weibo-code
- cd koa2-weibo-code
- npm i
(2)设置环境变量
- 安装 cross-env -D
2-3、介绍koa2-讲解代码结构
修改文件目录及配置文件
目录 | 介绍 |
---|---|
bin/www.js | 请求监听文件 |
public | 静态文件 |
router | 路由层 |
view | 界面 |
app.js | 入口文件 |
2-4、介绍koa2-演示路由
(1)普通路由
/* router/users.js */
const router = require('koa-router')()
//前缀
router.prefix('/users')
router.get('/json', async (ctx, next) => {
ctx.body = {
title: 'koa2 json'
}
})
module.exports = router
/* app.js */
const users = require('./routes/users')
app.use(users.routes(), users.allowedMethods())
(2)获取url中的参数
router.get('/profile/:username/:pageIndex', function (ctx, next) {
const {username,pageIndex} = ctx.params
ctx.body = {
username,
pageIndex
}
})
2-5、介绍ejs-变量和判断
(1)原理
(2)变量
- 如果 router 没有传递 index.ejs 中所需的值时会报错。
- 使用 locals.name即可解决该问题
<p><%= locals.name%></p>
(3)判断
<div>
<% if (isMe) { %>
<a>有人@我</a>
<% } else { %>
<button>关注</button>
<% } %>
</div>
(4)循环和引用组件
2-6、建表
- users表
column | datatype | pk主建 | nn不为空 | Al自动增加 | Default |
---|---|---|---|---|---|
id | int | Y | Y | Y | |
username | varchar(20) | Y | |||
password | varchar(20) | Y | |||
nickname | varchar(10) | Y |
- blogs表
column | datatype | pk主建 | nn不为空 | Al自动增加 | Default |
---|---|---|---|---|---|
id | int | Y | Y | Y | |
title | varchar(50) | Y | |||
content | longtext | Y | |||
userid | int | Y |
- blog中的userid设置为外键