koa建站过程记录
Jun 29, 2017
建数据库的同时设置字符编码为utf8:
CREATE DATABASE shop CHARACTER SET utf8 COLLATE utf8_general_ci;
建表的同时设置字符编码:
1 | CREATE TABLE mytable( |
grant命令是创建MySQL的用户名和口令,均为www,并赋予操作test数据库的所有权限
grant all privileges on test.* to 'www'@'%' identified by 'www';
runkoa 代码启动,在 ./bin/run.js , 引入启动文件 ./bin/www.js 即可使得 babel 生效
设计:
models构建
在 utils/model 中有个 initTable 方法, 用于连接 utils/mysql 生成数据库表格, 并构建其 model 及其 CRUD 方法.
它会自动为调用该方法的 model 加上id(若不存在),createdAt, updatedAt 和 version 字段.
routes构建
在 utils/routes 中, 使用了声明式的方式, 自动 exports 路由对象, 在 app.js 中导入.
目前只实现了 /api/model/table 用于查看数据库表格字段. 如 /api/items/table 可以查看 items 表的字段.
使用扫描式会把 admin 这种不需要生成的表格也生成了, 可以使用排除式,但是不够直观!
考虑过加上自动生成 CRUD (post,get,put,delete) 路由, 但是由于定义复杂, 操作各个 model 所需判断条件有所不同,暂时放弃.
登录缓存
在 models/users 和 models/admin 中均有一个 IDS, 用于缓存已经登录的用户的数据, 避免每次验证登录状态,查询用户数据的时候都要到数据库中取.
跨域设置
在 app.js 中, koa-cors 为借鉴了 node-cors 为 koa 专门开发的第三方插件, 可设置白名单.