# npm-explore **Repository Path**: runtuu/npm-explore ## Basic Information - **Project Name**: npm-explore - **Description**: 一个npmjs探索网站,包括统计,交流等 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-21 - **Last Updated**: 2025-09-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # npm-explore ## 介绍 npm-explore 是一个 npm探索网站,是对npmjs.com的拓展和功能丰富,包含npm包的统计,每日趋势,讨论 ## 主要功能 - **数据同步** - 与npm官网数据同步,确保数据的准确性和实时性 - 支持单个包同步、批量同步和热门包同步 - **数据智能标记** - 通过OpenAI大模型,对npm包的描述进行智能标记 - 根据功能和使用场景,自动生成中文标签 - **多语言支持** - 使用OpenAI将npm包的英文描述翻译成中文 - **下载统计与趋势分析** - 每日下载统计数据收集和存储 - 包下载趋势分析与可视化 - 多种排行榜:总下载量排行榜、标签排行榜、标签下的包排行榜 - **标签系统** - 智能标签生成和管理 - 基于标签的包分类和发现 - **用户讨论区** - 提供每个包的讨论区 - 支持评论、回复、点赞功能 - 评论嵌套展示 ## 技术架构 ### 后端 - **核心框架**:Node.js + Express - **数据库**:MySQL - **ORM**:Sequelize - **API集成**: - npm Registry API - OpenAI API - **中间件**: - 请求日志记录 - 统一错误处理 - CORS支持 ### 项目结构 ``` npm-explore/ ├── config/ # 配置文件 ├── middleware/ # 自定义中间件 ├── models/ # 数据模型 ├── routes/ # API路由 ├── services/ # 业务逻辑 ├── index.js # 应用入口 └── package.json # 项目配置和依赖 ``` ## 安装指南 1. **克隆项目** ```bash git clone <项目仓库地址> cd npm-explore ``` 2. **安装依赖** ```bash npm install ``` 3. **配置环境变量** - 复制 `.env.example` 文件并重命名为 `.env` - 编辑 `.env` 文件,填写数据库连接信息和API密钥 ```env # 服务器配置 PORT=3000 NODE_ENV=development # 数据库配置 DB_HOST=localhost DB_PORT=3306 DB_NAME=npm_explore DB_USERNAME=your_username DB_PASSWORD=your_password # OpenAI配置 OPENAI_API_KEY=your_openai_api_key ``` 4. **运行项目** - 开发模式 ```bash npm run dev ``` - 生产模式 ```bash npm start ``` ## API 端点 ### 包管理 - `GET /api/packages` - 获取包列表 - `GET /api/packages/:id` - 获取包详情 - `GET /api/packages/search` - 搜索包 - `GET /api/packages/popular` - 获取热门包 ### 统计分析 - `GET /api/stats/trend/:packageId` - 获取下载趋势 - `GET /api/stats/daily` - 获取每日热门包 - `GET /api/stats/leaderboard` - 获取总排行榜 - `GET /api/stats/tags/leaderboard` - 获取标签排行榜 ### 标签系统 - `GET /api/tags` - 获取所有标签 - `GET /api/tags/:id` - 获取标签详情 - `GET /api/tags/:tagId/packages` - 获取标签下的包 ### 讨论区 - `GET /api/discussions/package/:packageId` - 获取包的讨论 - `POST /api/discussions` - 添加评论 - `POST /api/discussions/:id/like` - 点赞评论 - `DELETE /api/discussions/:id` - 删除评论 ### 数据同步 - `POST /api/sync/package` - 同步单个包 - `POST /api/sync/packages/batch` - 批量同步包 - `POST /api/sync/popular` - 同步热门包 ## 健康检查 - `GET /health` - 检查服务器运行状态 ## 注意事项 1. 使用前请确保已配置正确的数据库连接信息和OpenAI API密钥 2. 在生产环境中,请设置 `NODE_ENV=production` 3. 首次运行时,系统会自动创建所需的数据库表 4. 为了避免OpenAI API调用频率限制,同步操作建议分批进行