koa typescript 实现美食天下项目 线上访问地址
- 安装依赖项
npm install
- 数据库创建 (请确保你已安装并启动了数据库软件)
- 修改 dist/config/config.json 配置文件,同config/config.json (数据库链接相关)
- 创建数据库 执行 以下命令
./node_modules/.bin/sequelize db:create
- 执行迁移文件(创建数据库表,字段)
./node_modules/.bin/sequelize db:migrate
- 执行种子文件(添加伪造数据)
./node_modules/.bin/sequelize db:seed:all
- 编译TS文件
npm run compile
- 运行项目
npm run app
菜谱相关
- 菜谱列表预览
- 菜谱详情预览 (制作步骤详细)
- 给菜谱点赞
- 给菜谱评论
- 发布菜谱
- 编辑菜谱
- 保存菜谱草稿箱
- 删除菜谱
用户相关
- 用户注册
- 用户登录
- 退出登录
- 修改密码 (账号设置)
- 修改个人信息 (账号设置)
- 用户信息展示 (账号设置)
- 用户详情页
- 用户菜谱相关页 (已发布/待审核/退稿箱/草稿箱)
- 用户收藏
- 用户管理 (会员中心)
- 用户私信
- 用户通知
- 用户话题
- 用户日志
搜索相关
- 搜索菜谱
- 搜索关键字高亮显示
收藏相关
- 收藏的菜谱
- 收藏的话题
- 收藏的日志
- 收藏的菜单
- 收藏的专题
以下待定
食材相关 珍选相关 健康相关 专题相关 社区相关 话题相关 日志相关 活动相关
Table: users
名称 | 类型 | 允许空 | 默认值 | 主键 | 说明 |
---|---|---|---|---|---|
id | INTEGER | No | - | Yes | 用户id |
username | VARCHAR(20) | No | - | No | 用户名 |
password | CHAR(32) | No | - | No | 密码 |
Table: users_info
名称 | 类型 | 允许空 | 默认值 | 主键 | 说明 |
---|---|---|---|---|---|
id | INTEGER | No | - | Yes | 用户id |
avatar | VARCHAR | No | '/public/images/avatar.png' | No | 用户头像 |
sex | ENUM(['男','女','保密']) | No | '男' | No | 性别 |
birthprovince | CHAR(10) | Yes | - | No | 所在省份 |
birthcity | CHAR(10) | Yes | - | No | 所在城市 |
Foregin Key
名称 | 外键表 | 外键表字段 |
---|---|---|
id | users | id |
Table: category
名称 | 类型 | 允许空 | 默认值 | 主键 | 说明 |
---|---|---|---|---|---|
id | INTEGER | No | - | Yes | 分类id |
c_name | VARCHAR(50) | No | - | No | 分类名称 |
p_id | INTEGER | No | - | No | 上级分类id |
Table: goods
名称 | 类型 | 允许空 | 默认值 | 主键 | 说明 |
---|---|---|---|---|---|
id | INTEGER | No | - | Yes | 菜谱id |
g_name | VARCHAR(30) | No | - | No | 菜谱名称 |
img | VARCHAR | No | "" | No | 菜谱图片 |
user_id | INTEGER | No | - | No | 用户id |
desc | VARCHAR(500) | Yes | "" | No | 菜谱描述 |
difficulty | ENUM(['简单', '初级', '中级', '高级']) | No | "简单" | No | 制作难度 |
zhuliao | VARCHAR | No | "" | No | 主料 |
fuliao | VARCHAR | No | "" | No | 辅料 |
tiaoliao | VARCHAR | No | "" | No | 调料 |
category_id | INTEGER | No | -1 | No | 分类id |
status | TINYINT | No | 3 | No | 审核状态 0:未审核 1:审核通过 2:审核不通过 3:存为草稿 |
status_mes | VARCHAR(100) | YES | - | No | 审核不通过描述信息 |
like_count | INTEGER | No | 0 | No | 点赞数量 |
star_count | INTEGER | No | 0 | No | 收藏数量 |
comment_count | INTEGER | No | 0 | No | 评论数量 |
Foregin Key
名称 | 外键表 | 外键表字段 |
---|---|---|
user_id | users | id |
Table: step
名称 | 类型 | 允许空 | 默认值 | 主键 | 说明 |
---|---|---|---|---|---|
id | INTEGER | No | - | Yes | 步骤id |
desc | VARCHAR(2000) | No | - | No | 步骤描述 |
url | VARCHAR(5000) | No | - | No | 步骤图片存放路径 |
Table: like
名称 | 类型 | 允许空 | 默认值 | 主键 | 说明 |
---|---|---|---|---|---|
id | INTEGER | No | - | Yes | 主键 |
user_id | INTEGER | No | - | No | 用户id |
g_id | INTEGER | No | - | No | 菜谱id |
Foregin Key
名称 | 外键表 | 外键表字段 |
---|---|---|
user_id | users | id |
g_id | goods | id |
Table: star
名称 | 类型 | 允许空 | 默认值 | 主键 | 说明 |
---|---|---|---|---|---|
id | INTEGER | No | - | Yes | 主键 |
user_id | INTEGER | No | - | No | 用户id |
g_id | INTEGER | No | - | No | 菜谱id |
Foregin Key
名称 | 外键表 | 外键表字段 |
---|---|---|
user_id | users | id |
g_id | goods | id |
Table: comments
名称 | 类型 | 允许空 | 默认值 | 主键 | 说明 |
---|---|---|---|---|---|
id | INTEGER | No | - | Yes | 主键 |
user_id | INTEGER | No | - | No | 用户id |
g_id | INTEGER | No | - | No | 菜谱id |
comment | VARCHAR(500) | No | - | No | 评论内容 |
Foregin Key
名称 | 外键表 | 外键表字段 |
---|---|---|
user_id | users | id |
g_id | goods | id |
- Class constructor Model cannot be invoked without 'new'
设置tsconfig.json target 为 ES2015 即可解决 (保留class关键字)
- 上传文件后,网页拿刚上传图像的url 404
需要tsc -w 监听变化后才能找到这个文件 / 重启服务