关于node.js:实现一个xx公司的仓储管理系统记录下全栈开发过程中的一些步骤及心得

2次阅读

共计 1919 个字符,预计需要花费 5 分钟才能阅读完成。

技术选型

前端:react + antd

后盾:express + mysql2 + log4js(日志服务,按业务模块记录)

部署:某讯的云服务器 + 域名,nginx 代理前端、后盾服务

前端 (治理端)

  • 应用脚手架创立我的项目,而后减少 antd 组件库
  • 页面鉴权
  • 左侧导航菜单: 依据以后账号所属角色对应的菜单权限去生成
  • 路由 / 子路由设计
  • 我的项目代码目录设计

后端

1、路由设计,依据业务辨别多个路由模块

2、接口日志记录、鉴权(登录时写入 cookie)

3、登录时,明码做双层 md5 加密校验(内置超级管理员角色账号,超级管理员角色配置用户治理及角色治理菜单权限)

4、实现文件上传

5、明确业务及性能需要

  • 登录 / 退出
  • 菜单权限管制
  • 用户治理(超级管理员)
  • 角色治理(超级管理员)
  • 商品分类管理(层级关联抉择,暂反对 2 级)
  • 商品治理
  • 供应商信息管理

6、数据库 – 表结构设计

  • 用户表 (users)
字段 含意 数据类型 是否必传
id 用户 id int 1
username 用户名 varchar(32) 1
password 明码 varchar(32)
phone 手机 char(11)
email 邮箱 varchar(32)
role_id 角色 id INT 1
create_time 创立工夫 datetime 1
change_time 最近批改工夫 datetime 1
  • 角色表 (roles)
字段 含意 数据类型 是否必传
id 角色 id int 1
name 角色名称 varchar(32) 1
auth_id 授权人 id int
auth_name 授权人 varchar(32)
auth_time 受权工夫 datetime
create_time 创立工夫 datetime 1
menus 有权限操作的菜单 path 的数组 [‘/a’,’/b’] VARCHAR(200) default ‘/home’
  • 商品分类表 (categorys)
字段 含意 数据类型 是否必传
id 分类 id INT 1
name 分类名称 varchar(64) 1
parentId 父级分类 id INT default null
description 分类简介 varchar(500) 1
create_time 创立工夫 datetime 1
change_time 最近批改工夫 datetime 1
imgs 图片 [‘/a’,’/b’] VARCHAR(200) default ”
  • 商品信息表 (products)
字段 含意 数据类型 是否必传
id 商品 id int 1
name 商品名称 varchar(64) 1
model 规格型号 varchar(64)
description 商品形容(详情) varchar(500)
create_time 创立此商品的工夫 datetime 1
change_time 最近批改工夫 datetime 1
imgs 图片 [‘/a’,’/b’] VARCHAR(200) default ”
categoryId 所属分类的父分类 id int 1
p_categoryId 所属分类的 id int 1
suppliers 关联供应商(可能多个、搞个列表多选性能) [id,id2,id3…] VARCHAR(150)
unit 商品单位 varchar(16)
purchase_price 进价 double(精度低)、decimal(精度高)decimal(10,3) default 0.000
wholesale_price 批发价 double(精度低)、decimal(精度高)decimal(10,3) default 0.000
retail_price 零售价 double(精度低)、decimal(精度高)decimal(10,3) default 0.000
inventory_count 累计入库数量(默认 0) int 1
show_count 展厅寄存数量(默认 0) int
delivery_count 累计出库数量(默认 0) int
current_count 库存(以后理论库存数量)(默认 0) int 1
effect 用处 varchar(500)
remark 备注 varchar(500)
status 商品状态: 1: 上架中, 2: 下架了 tinyint(1) 这里的 1 示意的是最小显示宽度是 1 个字符;
tinyint(2) 这里的 2 示意的是最小显示宽度是 2 字符
  • 供应商信息表 (suppliers)
字段 含意 数据类型 是否必传
id 供应商 id int 1
name 供应商姓名 varchar(32) 1
address 地址 varchar(64)
phone 手机号 char(11) 1
email 邮箱 varchar(32)
goods 供给物品 varchar(500)
goods_id 供给物品 id varchar(150) 预留字段:可能会去关联对应的多个商品 id

6、我的项目代码目录设计

我的项目基本功能演示








最初,心愿大家动一动小手,关注下❤!

前期等我的项目稳固,能够思考开源进去。

正文完
 0