# random_backend **Repository Path**: zedhugh/random_backend ## Basic Information - **Project Name**: random_backend - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-10-27 - **Last Updated**: 2021-06-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README * 后台接口文档 ** 请求方法规范 仅支持一下 4 种请求方式,其他方式不支持,请求方式及其作用: 1. GET: 仅获取数据 2. POST: 更新数据 3. PUT: 直接写数据,不做其他判断,相当于直接在数据表中插入一条新的记录 4. DELETE: 删除数据 ** 数据表结构 db_name: (数据库名)和 =游戏ID= 一致 table_name: (数据表名)根据客户端传入的参数决定 ** 接口说明 URL参数说明: 1. hostname 服务器域名 2. port 服务端口(暂时为3000) 3. :db_name 数据库名称(和游戏一一对应) 4. :table_name: 数据库中数据表名 所有接口返回的都是 =JSON字符串= 接口 1. 请求一张数据表中都所有数据 URL: http://hostname:port/get_all/:db_name/tab/:table_name?token=TOKEN 请求方式: GET 请求参数: 无 返回结果: { code: 0, data: JSON } 2. 请求符合查询条件的数据 URL: http://hostname:port/get_record/:db_name/tab/:table_name 请求方式: POST 请求参数: {query: JSON, token: string} 返回结果: { code: 0, data: JSON } 3. 更新数据 URL: http://hostname:port/update/:db_name/tab/:table_name 请求方式: POST 请求参数: {query: JSON, data: JSON, token: string} 返回结果: {code: 0, data: { result: { n: number, ok: number, nModified: number } } } 4. 删除已有数据中的已有属性 URL: http://hostname:port/delete_props/:db_name/tab/:table_name 请求方式: DELETE 请求参数: {query: JSON, props: string[], token: string} 返回结果: {code: 0, data: { result: { n: number, ok: number, nModified: number } } } 5. 删除已有的符合条件的数据 URL: http://hostname:port/delete_record/:db_name/tab/:table_name 请求方式: DELETE 请求参数: {query: JSON, onlyOne: boolean, token: string} 返回结果: {code: 0, errMsg: 'success' } | { code: 1, errMsg: 'fail' } 6. 插入数据 URL: http://hostname:port/insert/:db_name/tab/:table_name 请求方式: PUT 请求参数: {data: newData, onlyOne: boolean, token: string} 返回结果: {code: 0, errMsg: 'success' } | { code: 1, errMsg: 'fail' } * 环境搭建步骤 1. 安装 =mongodb= 数据库 2. 运行 =git clone https://gitee.com/zedhugh/random_backend.git= ,克隆项目代码 3. 运行 =npm i= 命令安装npm包 4. 运行 =npm start= 开始运行服务器 * 登录注册功能 1. 注册 用户注册只需要输入用户名和密码即可注册,但是用户名全局唯一 URL: http://hostname:port/user/register/:gameid 请求方式: POST 请求参数: {name: string, password: string} 2. 登录 调用登录接口,传如用户名和密码,返回token和token的过期时间, token是调用后台其他接口的唯一凭证,token默认过期时间为7200秒 URL: http://hostname:port/user/login/:gameid 请求方式: POST 请求参数: {name: string, password: string} 3. 接口错误码说明 | code | 说明 | |------+----------------| | 0 | 成功 | | 1 | 用户名已存在 | | 2 | 密码错误 | | 3 | 未注册的用户名 | | 4 | 无效的 gameid | | 5 | 无效的 token | 4. 数据表的构成及其数据结构 + gameid + loginInfo 登录信息 #+begin_src ts interface LoginInfo { token: string; expireDate: Date; } #+end_src + users 用户信息 + 用户统计信息 #+begin_src ts interface UsersInfo { maxUID: number; // 当前最大的 uid count: number; // 注册用户数 } #+end_src + 每个用户的信息 #+begin_src ts interface UserInfo { uid: number; // 用户id(后台自动自增生成) ip: string; // 注册时的IP地址 createTime: Date; // 用户注册时间 name: string; // 用户名(不能重复) password: string; // 用户密码 } #+end_src * 测试接口 1. 四种请求方式测试 URL: http://hostname:port/test/ 支持请求方式: GET, POST, DELETE, PUT 2. 添加 gameid URL: http://hostname:port/test/insert_gameid/{:gameid} 请求方式: GET