# 数据同步服务 ## 简介 这是一个用于将数据库中的用户数据同步到简道云表单的服务。 ## 功能特性 1. **数据同步**:将数据库中的用户数据同步到简道云表单 2. **重复数据检查**:跳过简道云表单中已存在的电话号码数据 3. **增量同步**:只同步新增/未同步的数据(默认启用) 4. **全量同步**:同步所有数据 5. **自动同步**:定期自动检查并同步数据库中的新增数据 ## 配置选项 ### 数据库配置 在 `src/config/config.js` 中配置数据库连接信息: ```javascript db: { host: '数据库主机地址', port: 数据库端口号, user: '数据库用户名', password: '数据库密码', database: '数据库名称' } ``` ### 同步配置 在 `src/config/config.js` 中配置同步选项: ```javascript sync: { // 增量同步模式:true - 只同步新增/未同步数据,false - 同步所有数据 incremental: true, // 同步状态字段 statusField: 'sync_status', // 最后同步时间字段 timeField: 'last_sync_time', // 已同步状态值 syncedValue: 1, // 未同步状态值 unsyncedValue: 0, // 自动同步配置 autoSync: { // 是否启用自动同步 enabled: true, // 同步间隔时间(单位:分钟) interval: 5 } } ``` ### 简道云配置 在 `src/config/config.js` 中配置简道云API信息: ```javascript jiandaoyun: { appId: '简道云应用ID', entryId: '简道云表单ID', apiKey: '简道云API密钥' } ``` ### 字段映射 在 `src/config/config.js` 中配置数据库字段与简道云表单字段的映射关系: ```javascript fieldMapping: { 'userId': '简道云字段ID', 'company': '简道云字段ID', 'name': '简道云字段ID', 'phoneNumber': '简道云字段ID', 'type': '简道云字段ID', 'city': '简道云字段ID' // 其他字段映射... } ``` ## 使用方法 ### 安装依赖 ```bash npm install ``` ### 运行服务 #### 启动自动同步服务 ```bash node index.js ``` 这将启动自动同步服务,每隔5分钟(可在配置中修改)自动检查并同步数据库中的新增数据。 #### 执行一次全量同步 ```bash node index.js --full-sync ``` 这将执行一次全量同步,同步数据库中的所有数据到简道云表单。 #### 执行一次增量同步 ```bash node index.js --incremental-sync ``` 这将执行一次增量同步,只同步数据库中未同步的数据到简道云表单。 #### 测试数据库连接 ```bash node index.js --test-db ``` 这将测试数据库连接是否正常。 #### 测试简道云API连接 ```bash node index.js --test-jiandao ``` 这将测试简道云API连接是否正常。 #### 测试所有连接 ```bash node index.js --test-all ``` 这将测试数据库连接和简道云API连接是否正常。 ## 注意事项 1. 确保数据库中的用户表包含 `sync_status` 和 `last_sync_time` 字段,用于标记同步状态和最后同步时间 2. 确保简道云表单中已创建对应的字段,并在配置文件中正确配置字段映射关系 3. 自动同步服务需要保持运行状态才能定期执行同步 4. 重复的电话号码数据会被跳过,不会重复写入简道云表单 ## 终止服务 要终止自动同步服务,可以在终端中按 `Ctrl + C` 键。