建数据库的同时设置字符编码为utf8:

CREATE DATABASE shop CHARACTER SET utf8 COLLATE utf8_general_ci;

登录缓存

建表的同时设置字符编码:

1
2
3
4
CREATE TABLE mytable(
id varchar(40) NOT NULL default '',
userId varchar(40) NOT NULL default ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

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 专门开发的第三方插件, 可设置白名单.