mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3
850 字
2 分钟
实验室库存工具:多租户全栈解决方案
2026-08-05

📱 扫描上方小程序码即可体验实验室库存管理系统。

🚀 项目简介#

实验室库存管理系统(Laboratory Inventory Management System)是一套用于管理实验室耗材的全栈解决方案,核心特点是多租户数据隔离——通过 labName 字段将不同实验室的库存数据完全隔离,互不干扰。

项目采用前后端分离 + MCP 集成的架构,由三个子项目组成:

Frontend (Taro) → Backend API (Express) → MongoDB (Mongoose)
MCP Server (read-only queries for AI)

🖥️ 前端(no-nutui/)#

基于 Taro 4.1 + Vue 3 + TypeScript 的跨端应用,一套代码同时支持微信小程序、H5 和支付宝小程序:

npm run dev:weapp # 微信小程序(主要)
npm run dev:h5 # H5 网页版
npm run dev:alipay # 支付宝小程序

⚙️ 后端(no1_express/)#

基于 Node.js + Express + MongoDB 的 REST API,采用标准的 MVC 分层结构(route → controller → service → model),统一返回 { errCode, errorInfo, data } 格式。

🤖 MCP Server(mcp/)#

独立的 HTTP 只读服务,为 AI 助手提供查询能力,所有查询都需要传入 labName 参数,保证跨实验室数据安全。

💡 核心特性#

1. 多实验室数据隔离#

这是项目最重要的架构设计:

  • JWT Token 中包含 labName 字段
  • 所有数据库查询都按 labName 过滤
  • 跨实验室操作会被直接拒绝
  • MCP 服务所有查询同样要求 labName 参数

2. 库存状态自动管理#

库存状态通过 Mongoose 钩子自动计算,无需人工维护:

状态判定条件
过期(expired)expiryDate < now
临期(expiring_soon)30 天内过期
缺货(out_of_stock)quantity === 0
低库存(low_stock)quantity <= minQuantity

3. 完整的审计追踪#

所有库存操作都会生成 Transaction 记录,包含操作人信息、时间戳、操作前后数量、操作类型(采购入库、归还入库、领用出库、使用出库),方便追溯。

4. 并发安全#

后端使用 MongoDB 原子 $inc 操作更新数量,保证多用户并发领用时数据一致。

5. JWT 鉴权与自动续期#

前端将 Token 存储在 Taro.getStorageSync('token'),后端每次请求自动校验并续期,新的 Token 通过响应头返回。

📦 数据模型#

核心数据模型包括:User(用户与角色)、Inventory(库存)、Lab(实验室)、Transaction(出入库记录)、ExperimentPlan(实验计划)、ShareRequest(资源共享申请)、LabMember(实验室成员)等。

其中 Inventory 内置了 searchItems(keyword) 搜索方法,支持按名称、编码、分类、供应商、规格等进行检索。

🛠️ 本地开发#

# 终端 1:后端
cd no1_express && npm run dev
# 终端 2:前端
cd no-nutui && npm run dev:weapp
# 终端 3:MCP(可选)
cd mcp && npm start

三个项目共享同一个 MongoDB 数据库,前端通过 src/api/config.ts 中的 VITE_BACKEND_BASE_URL 配置后端地址。

💭 总结#

这个项目是一套架构清晰、工程化完善的实验室库存管理解决方案:通过 labName 实现多租户隔离,通过 MCP Server 拥抱 AI 生态,前端跨端一套代码多端运行,后端注重数据安全与审计。对于需要管理实验室耗材、或是想学习多租户 + 前后端分离架构的同学,都有不错的参考价值。

NOTE

项目在前端工程化方面也很完善:ESLint + Stylelint + Husky + Commitlint + lint-staged 一应俱全,遵循 Conventional Commit 提交规范。


有问题? 欢迎在评论区交流讨论!

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

实验室库存工具:多租户全栈解决方案
https://basyc.cloud/posts/lab-inventory-system/
作者
北汐-Basyc
发布于
2026-08-05
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录