{"id":22001896,"url":"https://github.com/poetries/mock-server","last_synced_at":"2025-06-14T05:04:23.643Z","repository":{"id":113502314,"uuid":"107993326","full_name":"poetries/mock-server","owner":"poetries","description":"build a mock-server ","archived":false,"fork":false,"pushed_at":"2017-10-31T12:23:17.000Z","size":13,"stargazers_count":11,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-14T05:02:45.623Z","etag":null,"topics":["gulp","json-server","mock","nodejs","webpack"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/poetries.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"zenodo":null}},"created_at":"2017-10-23T14:24:55.000Z","updated_at":"2024-05-11T00:30:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"0edfbe6e-6498-464e-b3b6-74833aab5fa9","html_url":"https://github.com/poetries/mock-server","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/poetries/mock-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/poetries%2Fmock-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/poetries%2Fmock-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/poetries%2Fmock-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/poetries%2Fmock-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/poetries","download_url":"https://codeload.github.com/poetries/mock-server/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/poetries%2Fmock-server/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259763076,"owners_count":22907407,"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","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":["gulp","json-server","mock","nodejs","webpack"],"created_at":"2024-11-29T23:15:26.225Z","updated_at":"2025-06-14T05:04:23.638Z","avatar_url":"https://github.com/poetries.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"mock-server\n---\n\nbuild a mock-server \n\n\nUsage\n---\n\n```javascript\n# 安装依赖\nnpm install\n\n# 先执行npm run dev\nnpm run dev\n\n# 再执行npm run gulp\n# 就可以搭建一个随改随变的 mock-server 环境\n# 以后每次当我们需要添加修改mock数据使都不需要重启mock服务\n# 然后在浏览器中打开http://localhost:8081/api/comment/get.action自定义的接口\nnpm run gulp\n```\n\n原理\n---\n\n- 在项目根目录新建 `mock`文件夹，新建 `mock/db.js` 作为 `mock` 数据源，`mock/server.js`作为 `mock` 服务，`mock/routes.js`重写路由表\n- 利用 `mock.js` 生成 `mock` 数据，可以尽可能的还原真实数据\n\n**搭建主要思路**\n\n- 以 `json-server` 作为 `mock` 服务器， `mock.js` 生成`mock` 数据，利用 `gulp + nodemon + browser-sync` 监听`mock`文件的改动重启 `node` 服务，刷新浏览器，以此达到一种相对完美的 `mock-server`要求\n\n**端口代理**\n\n\u003e 通过 `Webpack` 配置 `proxy` 代理\n\n```javascrpit\nmodule.exports = {\n  \n  devServer: {  \n    //其实很简单，只要配置这个参数就可以了  \n    proxy: {  \n      '/api/': {  \n        target: 'http://localhost:3000',\n  \t    changeOrigin: true,\n        pathRewrite: {\n          '^/api': ''\n        }\n      }\n    }\n  } \n}\n```\n\n- 接着在代码里进行 `ajax`请求就可以写成，以 `axios `为例子\n\n```javascript\nfunction getComments () {\n  axios.get('api/comment/get.action', {}).then((res) =\u003e {\n    console.log(res.data)\n  })\n}\n```\n\nSnapshot\n---\n\n\u003e 在请求接口之后得到的数据 `http://localhost:8081/api/comment/get.action`\n\n![mock-data](http://upload-images.jianshu.io/upload_images/1480597-1252442ffcc1a872.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpoetries%2Fmock-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpoetries%2Fmock-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpoetries%2Fmock-server/lists"}