# rwa-backend **Repository Path**: xinminsu/rwa-backend ## Basic Information - **Project Name**: rwa-backend - **Description**: rwa-backend - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-10 - **Last Updated**: 2026-01-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Aura Asset Management System - NestJS Backend 这是一个基于NestJS的资产管理后端系统,提供房产列表、交易记录管理等功能。 ## 功能特性 - 房产列表管理 - 图片上传到Cloudinary - 用户持有代币管理 - 收益管理 - 交易记录管理 - MongoDB数据存储 ## 技术栈 - NestJS - TypeScript - MongoDB with Mongoose - Cloudinary (图片存储) - Multer (文件上传) - Class Validator (数据验证) ## 安装和运行 ### 1. 安装依赖 ```bash npm install ``` ### 2. 环境变量配置 创建 `.env` 文件并配置以下变量: ```env MONGODB_URI=mongodb://localhost:27017/aura-asset CLOUDINARY_NAME=your_cloudinary_name CLOUDINARY_API_KEY=your_cloudinary_api_key CLOUDINARY_API_SECRET=your_cloudinary_api_secret PORT=3005 ``` ### 3. 运行项目 开发模式: ```bash npm run start:dev ``` 生产模式: ```bash npm run build npm run start:prod ``` ## API 端点 ### 基础端点 - `GET /` - 欢迎信息 ### 房产管理 - `POST /list-property` - 创建房产列表 - `GET /get-property-details` - 获取所有房产详情 - `GET /get-property-details-by-title?title=xxx` - 根据标题搜索房产 - `GET /get-properties-by-user-address?userAddress=xxx` - 获取用户房产 - `PUT /:id/update-holding-tokens` - 更新持有代币 - `PUT /:id/update-earned-yields` - 更新收益 ### 交易管理 - `POST /store-transactions-data` - 存储交易数据 - `GET /get-transactions-data` - 获取交易数据 ## 项目结构 ``` src/ ├── asset/ # 资产模块 │ ├── dto/ # 数据传输对象 │ ├── services/ # 服务层 │ ├── asset.controller.ts │ └── asset.module.ts ├── database/ # 数据库模块 │ └── schemas/ # Mongoose模式 ├── app.module.ts # 应用根模块 └── main.ts # 应用入口 ``` ## 开发 ### 代码格式化 ```bash npm run format ``` ### 代码检查 ```bash npm run lint ``` ### 测试 ```bash # 单元测试 npm run test # e2e测试 npm run test:e2e # 测试覆盖率 npm run test:cov ``` ## 从Express迁移 此项目已从Express.js迁移到NestJS,主要变化包括: 1. **模块化架构**: 使用NestJS的模块系统 2. **依赖注入**: 使用NestJS的依赖注入容器 3. **装饰器**: 使用装饰器进行路由、验证等 4. **TypeScript**: 完全使用TypeScript开发 5. **DTO验证**: 使用class-validator进行数据验证 6. **服务层**: 将业务逻辑分离到服务层