5.7 KiB
5.7 KiB
XNSim 门户网站
一个基于 Node.js 的现代化门户系统,集成了 C++ 动态库认证功能,专为 XNSim 项目设计。
📋 目录
✨ 功能特点
🔐 认证系统
- 美观的响应式登录界面
- 跨平台动态库支持(Windows/Linux)
- 基于权限级别的用户角色管理
- 记住登录状态功能
🔧 接口配置管理
- 完整的 CRUD 操作支持
- Excel 文件批量导入功能
- 多维度筛选(构型、ATA 章节、结构体名等)
- 分页显示和批量操作
- 数据验证和错误处理
📊 系统监控
- 实时数据监控
- 系统日志管理
- 用户行为追踪
- 性能指标展示
🏗️ 系统架构
XNSimPortal/
├── assets/ # 静态资源文件
├── components/ # 前端组件
├── routes/ # API 路由
├── utils/ # 工具函数
├── server.js # 主服务器文件
└── main.html # 主页面
📋 环境要求
必需软件
- Node.js: 14.x 或更高版本
- SQLite: 5.7 或更高版本
- 操作系统: Windows 10+ / Linux / macOS
环境变量
必须设置 XNCore
环境变量,指向 XNSim 安装根目录:
# Linux/macOS
export XNCore=/path/to/xncore/directory
# Windows (CMD)
set XNCore=C:\path\to\xncore\directory
# Windows (PowerShell)
$env:XNCore = "C:\path\to\xncore\directory"
动态库文件
确保在 $XNCore/lib
目录下存在相应动态库:
操作系统 | 文件名 | 说明 |
---|---|---|
Windows | login.dll |
Windows 动态链接库 |
Linux | liblogin.so |
Linux 共享对象库 |
🚀 快速开始
1. 克隆项目
git clone <repository-url>
cd XNSimPortal
2. 安装依赖
npm install
3. 配置数据库
创建 .env
文件并配置数据库连接:
DB_HOST=localhost
DB_USER=your_username
DB_PASSWORD=your_password
DB_NAME=xnsim_db
DB_PORT=3306
4. 启动服务
npm start
5. 访问应用
打开浏览器访问:http://localhost:3000
📚 API 文档
认证 API
用户登录
POST /api/login
Content-Type: application/json
{
"username": "string",
"password": "string",
"remember": boolean
}
响应示例:
{
"success": true,
"message": "登录成功",
"permissionLevel": 3,
"role": "管理员"
}
接口配置 API
获取接口列表
GET /api/interface/list?page=1&limit=10&filter=...
添加接口
POST /api/interface/add
Content-Type: application/json
{
"configuration": "string",
"ataChapter": "string",
"structName": "string",
"interfaceName": "string",
"dataType": "string",
"arraySize": "string",
"description": "string"
}
更新接口
PUT /api/interface/update
Content-Type: application/json
{
"currentData": {...},
"originalData": {...}
}
删除接口
DELETE /api/interface/delete?id=123
导入接口配置
POST /api/interface/import
Content-Type: application/json
{
"data": [...]
}
下载导入模板
GET /api/interface/template
🔐 权限管理
系统采用五级权限体系:
级别 | 角色 | 权限描述 |
---|---|---|
0 | 访客 | 仅可查看公开信息 |
1 | 普通用户 | 基础功能访问权限 |
2 | 高级用户 | 扩展功能访问权限 |
3 | 管理员 | 系统管理权限 |
4 | 超级管理员 | 完全系统控制权限 |
🛠️ 技术栈
前端
- HTML5 - 语义化标记
- CSS3 - 样式和动画
- JavaScript ES6+ - 交互逻辑
- Web Components - 组件化开发
后端
- Node.js - 运行时环境
- Express.js - Web 框架
- MySQL - 关系型数据库
核心库
- ffi-napi - C++ 动态库调用
- xlsx - Excel 文件处理
- mysql2 - 数据库驱动
❓ 常见问题
Q: 动态库加载失败怎么办?
A: 请检查:
XNCore
环境变量是否正确设置- 动态库文件是否存在于
$XNCore/lib
目录 - 动态库是否包含
Login_validateUser
导出函数
Q: 数据库连接失败?
A: 请确认:
- MySQL 服务是否正在运行
.env
文件中的数据库配置是否正确- 数据库用户是否有足够权限
Q: 接口配置导入失败?
A: 请检查:
- Excel 文件格式是否符合模板要求
- 必填字段是否完整
- 数据格式是否符合验证规则
📝 开发规范
代码风格
- 使用 ES6+ 语法
- 遵循 JavaScript 标准规范
- 添加适当的注释和文档
数据验证
- 接口名称必须符合 C++ 命名规范
- 数组大小必须大于 1
- 必填字段不能为空
🔄 更新日志
v0.31.0.250619_alpha (当前版本)
- ✅ 基础登录认证功能
- ✅ 接口配置管理
- ✅ Excel 导入导出
- ✅ 权限管理系统
计划功能
- 🔄 IDL 文件导入支持
- 🔄 实时数据监控
- 🔄 用户行为分析
- 🔄 API 文档自动生成
📞 支持
如有问题或建议,请通过以下方式联系:
- 提交 Issue
- 发送邮件至技术支持
- 查看项目 Wiki
注意: 本系统需要正确配置 C++ 动态库才能正常工作。确保动态库包含 Login_validateUser
函数,该函数接受用户名和密码参数,返回权限级别(负值表示失败)。