{"id":21452776,"url":"https://github.com/zhouzuchuan/data-mock","last_synced_at":"2025-09-13T16:20:21.745Z","repository":{"id":32896581,"uuid":"129578891","full_name":"zhouzuchuan/data-mock","owner":"zhouzuchuan","description":":syringe: Lightweight mock data service 轻量级数据模拟服务","archived":false,"fork":false,"pushed_at":"2023-02-11T09:33:04.000Z","size":1761,"stargazers_count":10,"open_issues_count":6,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-09T04:24:20.464Z","etag":null,"topics":["data-mock","mockjs","react","vue","webapck","webpck-dev-server"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zhouzuchuan.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-15T05:07:20.000Z","updated_at":"2024-04-23T09:32:02.000Z","dependencies_parsed_at":"2024-11-23T04:42:03.831Z","dependency_job_id":null,"html_url":"https://github.com/zhouzuchuan/data-mock","commit_stats":{"total_commits":50,"total_committers":2,"mean_commits":25.0,"dds":0.09999999999999998,"last_synced_commit":"b5c685ffb9ddd8785a759def698a786cfc4706b5"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/zhouzuchuan/data-mock","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhouzuchuan%2Fdata-mock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhouzuchuan%2Fdata-mock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhouzuchuan%2Fdata-mock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhouzuchuan%2Fdata-mock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zhouzuchuan","download_url":"https://codeload.github.com/zhouzuchuan/data-mock/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhouzuchuan%2Fdata-mock/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274990023,"owners_count":25386570,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-13T02:00:10.085Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-mock","mockjs","react","vue","webapck","webpck-dev-server"],"created_at":"2024-11-23T04:31:58.489Z","updated_at":"2025-09-13T16:20:21.673Z","avatar_url":"https://github.com/zhouzuchuan.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n\u003cdiv align=\"center\"\u003e\n\n```\n\n██████╗ ███╗   ███╗\n██╔══██╗████╗ ████║\n██║  ██║██╔████╔██║\n██║  ██║██║╚██╔╝██║\n██████╔╝██║ ╚═╝ ██║\n╚═════╝ ╚═╝     ╚═╝\n\n轻量级数据模拟\n\n```\n\n\u003c/div\u003e\n\n\n\u003cdiv align=\"center\"\u003e\n\n# DataMock\n\n[![download](https://img.shields.io/npm/dm/data-mock.svg)](https://www.npmjs.com/search?q=data-mock)\n[![npm](https://img.shields.io/npm/v/data-mock.svg)](https://www.npmjs.com/search?q=data-mock)\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/zhouzuchuan/data-mock/master/LICENSE)\n\n\u003c/div\u003e\n\n## 它是什么\n\n-   旨在帮助广大泛前端开发人员，解决数据模拟、数据对接等开发瓶颈，提高开发效率\n-   一款基于 [Express](https://github.com/expressjs/express) 的轻量级数据模拟服务\n-   引入了业界优秀的数据模拟工具 [Mockjs](https://github.com/nuysoft/Mock)，如果你可以跳墙，也可以试试这个神器 [Faker.js](https://github.com/Marak/faker.js)、[chancejs](https://github.com/chancejs/chancejs)\n\n## 优势\n\n-   轻量，随起随用\n-   支持自定义模拟请求参数响应回调\n-   支持绑定 web 前端框架 [React](https://github.com/facebook/react)、 [Vue](https://github.com/vuejs/vue) 等，实现模拟功能\n-   降低不可抗力带来的开发失落感，如：断网、停电、服务器挂掉等诸如此类 😁\n-   了解后端逻辑，成为优秀的全栈开发大牛奠定思维逻辑基础\n\n## 下载\n\n建议全局安装，随起随用\n\n**npm**\n\n```bash\nnpm install -g data-mock\n```\n\n**yarn**\n\n```bash\nyarn add global data-mock\n```\n\n## 如何用\n\n### 目标服务目录\n\n该目录下的所有 js 文件都会被监听以及读取载入挂在到路由上，具体写法可以参考这个 [example](https://github.com/zhouzuchuan/dataMock/tree/master/example/db) \n\n\u003e .开头的文件（如：.store.js）则会被载入到 node 中的 `global.DM` 对象上，主要是用来存储各个请求的默认数据，可以用来做更多好玩的东西，如：关联数据模拟等\n\n\n\n目标服务目录的 js 格式，建议采用 es6 \n\nPS: 请提前检测下自己电脑安装的 node 支持何种程度的 es6，可以使用这个工具来检测 [es-checker](https://github.com/ruanyf/es-checker)\n\n\n\n数据格式：`[请求方式 请求接口]: 响应函数`\n\n```js\n// 模拟数据格式\n['GET /test']: function(req, res) {\n  return res.json({\n    name: Random.cname(),\n    time: Random.date()\n  });\n}\n```\n\n\n\n### 现代前端框架 [webpack](https://github.com/webpack/webpack) 中使用\n\n#### 2.0 使用方法如下\n\n```js\n\nconst DataMock = require('data-mock');\nconst path = require('path')\n\n// ...\n\n// webpack 中webpack-dev-server 配置\ndevServer: {\n    //  绑定mock server\n    after: server =\u003e {\n      \n      \tnew DataMock(server，{\n            target: path.resolve(__dirname, './src/mocks/'),\n          \n            // 监控目录（这里声明的目录有变动，则服务数据刷新，主要用来监控api变动）\n            // 如果不需要则不写\n            // 和上面target一样，必须通过 path.resolve 找到相对于项目的真实路径，否则可能出现监控不准确\n            watchTarget: []\n        })\n \n    };\n}\n\n\n```\n\n\n\n\n\n#### 1.0使用方法\n\n\u003e `data-mock` 暴露一个方法 `bindServer`，用来绑定 [webpack-dev-server](https://github.com/webpack/webpack-dev-server) 暴露的 server 对象\n\u003e\n\u003e ```js\n\u003e \n\u003e const { bindServer } = require('data-mock');\n\u003e const path = require('path')\n\u003e \n\u003e // ...\n\u003e \n\u003e // webpack 中webpack-dev-server 配置\n\u003e devServer: {\n\u003e     //  绑定mock server\n\u003e     after: server =\u003e {\n\u003e         bindServer({\n\u003e             server,\n\u003e             target: path.resolve(__dirname, './src/mocks/')\n\u003e \n\u003e             // 监控目录（这里声明的目录有变动，则服务数据刷新，主要用来监控api变动）\n\u003e             // 如果不需要则不写\n\u003e             // 和上面target一样，必须通过 path.resolve 找到相对于项目的真实路径，否则可能出现监控不准确\n\u003e             watchTarget: []\n\u003e         });\n\u003e     };\n\u003e }\n\u003e \n\u003e ```\n\n`watchTarget` 搭配 [api-manage](https://github.com/zhouzuchuan/api-manage) 使用效果更佳\n\n\n\n## 命令\n\n### `server`\n\n| CMD             | 缩写 | 介绍                         |\n| --------------- | ---- | ---------------------------- |\n| `--target`      | `-t` | 指定目标服务目录  (相对位置) |\n| `--watchTarget` | `-w` | 监听目录                     |\n| `--open`        | `-o` | 打开浏览器                   |\n| `--port`        | `-p` | 指定端口 默认`1024`          |\n\n \n\n```bash\n\n# 当前目录为目标服务目录 并启动服务\ndm server\n\n# 指定mocks文件夹为目标服务目录 并启动服务\ndm server -t ./mocks/\n\n# 指定mocks文件夹为目标服务目录，并且监听api文件夹\ndm server -t ./mocks/ -w ./api/\n\n# 指定mocks文件夹为目标服务目录，并且监听api文件夹、指定端口为2000、打开浏览器\ndm server -t ./mocks/ -w ./api/ -p 2000 -o\n\n```\n\n### `doc`\n\n| CMD        | 缩写 | 介绍          |\n| ---------- | ---- | ------------- |\n| `--target` | `-t` | 指定api文件夹 |\n| `--dist`   | `-d` | 监听目录，默认为api文件地址中生成的 `DM-DOC`     |\n\n\n\n```bash\n\n# 指定当前运行目录为api目录\ndm server\n\n# 指定api文件夹为api目录\ndm doc -t ./api/\n\n# 指定api文件夹为api目录，并且输出值docs文件夹中\ndm doc -t ./api/ -d /docs\n\n```\n\n\n\n\n\n## License\n\n[MIT](https://tldrlegal.com/license/mit-license)\n\n#### 🎉🎉🎉🎉 如果您觉的还可以，求点个 star 🎉🎉🎉🎉\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhouzuchuan%2Fdata-mock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzhouzuchuan%2Fdata-mock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhouzuchuan%2Fdata-mock/lists"}