Files
backend-node/README.md

2.8 KiB
Raw Blame History

溯源管理平台 - 后端服务

浙江贝凡溯源管理平台的后端服务,基于 Node.js + TypeScript + Express + SQLite。

技术栈

  • Node.js: 运行时环境
  • TypeScript: 类型安全
  • Express: Web 框架
  • SQLite: 数据库
  • JWT: 身份认证
  • bcryptjs: 密码加密

项目结构

backend/
├── routes/           # API 路由
│   ├── auth.ts      # 认证路由
│   ├── serials.ts   # 序列号路由
│   └── companies.ts # 企业路由
├── middleware/       # 中间件
│   └── auth.ts      # 认证中间件
├── scripts/          # 脚本
│   └── init-db.ts   # 数据库初始化
├── utils/            # 工具函数
│   └── database.ts   # 数据库连接
├── types/            # 类型定义
│   └── index.d.ts   # TypeScript 类型
├── data/             # 数据文件
│   └── database.sqlite
├── server.ts         # 服务器入口
├── tsconfig.json     # TypeScript 配置
├── .env              # 环境变量
└── package.json      # 项目配置

安装

pnpm install

开发

启动开发服务器(支持热重载):

pnpm dev

服务器将在 http://localhost:3000 运行

构建

构建 TypeScript 为 JavaScript

pnpm build

生产

启动生产服务器:

pnpm start

数据库初始化

初始化数据库和默认管理员账户:

pnpm init-db

环境变量

创建 .env 文件:

PORT=3000
JWT_SECRET=your-secret-key-here

默认账户

初始化后默认创建的管理员账户:

  • 用户名: admin
  • 密码: Beifan@2026

API 接口

认证接口

  • POST /api/auth/login - 用户登录
  • GET /api/auth/profile - 获取用户信息
  • POST /api/auth/change-password - 修改密码
  • PUT /api/auth/profile - 更新用户资料

序列号接口

  • POST /api/serials/generate - 生成序列号
  • POST /api/serials/generate-with-prefix - 使用自定义前缀生成序列号
  • POST /api/serials/:serialNumber/qrcode - 生成二维码
  • GET /api/serials/:serialNumber/query - 查询序列号
  • GET /api/serials/ - 获取序列号列表
  • PATCH /api/serials/:serialNumber - 更新序列号
  • POST /api/serials/:serialNumber/revoke - 吊销序列号

企业接口

  • GET /api/companies/ - 获取企业列表
  • GET /api/companies/:companyName - 获取企业详情
  • PATCH /api/companies/:companyName - 更新企业信息
  • DELETE /api/companies/:companyName - 删除企业
  • DELETE /api/companies/:companyName/serials/:serialNumber - 删除企业下的序列号
  • POST /api/companies/:companyName/revoke - 吊销企业
  • GET /api/companies/stats/overview - 获取统计数据

License

MIT