1 Star 2 Fork 0

Yakima / mock-server

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

mock-server

服务器端数据模拟,方便前端工程师独立于后端进行开发。支持跨域访问,支持post大文件(不会在硬盘上进行存储)。

本程序根据个人的实际使用情况在操作的简便性和功能的丰富性之间做了适当的取舍,“返回静态JSON数据”时不对请求方式(POST、GET这种)进行区分,只针对请求地址进行响应(因为同一个接口地址不同请求方式的情况个人项目中很少见)。如果想要根据根据请求方式进行区别响应,可采用“返回JS自定义数据”或“请求代理”的方式。

适用于前端为http请求,后端返回json数据的场景。

说明:本文档中“配置文件”指的是config目录下的index.js文件

说明:服务器启动时会自动打开一个说明文档页面,若需取消,请修改配置文件中config.showReadMe的值为false。

截图

Established by Yakima Teng

使用前

首先,安装程序所需的依赖包,若网速不佳,请使用淘宝在国内的npm镜像服务。

npm install

等待依赖安装的同时,在config目录下新建一个index.js配置文件,将同级目录下index_sample.js文件的内容复制到index.js文件中。

然后,待程序所需的依赖包安装结束后,在项目根目录打开命令行工具,运行以下命令:

npm run dev

请求代理

修改配置文件中的config.proxyTable即可。示例如下:

proxyTable: {
  '/blog': {
    target: "http://yakima.duapp.com",
    changeOrigin: true
  },
  '/wechat/KqPay': {
    target: "http://yakima.duapp.com",
    changeOrigin: true
  }
}

如上配置对应的描述如下:

  • 本地发出的请求地址以/blog开头的请求会被转发到yakima.duapp.com/域名下相同的路径。即本地发出的/blog/v1/pages将会收到yakima.duapp.com/blog/v1/pages请求的响应结果。
  • 这里采用“越具体的配置,优先级越高”的规则,即如果本地发出的请求以/blog/details开头,则采用/blog/details规则匹配的代理域名而非/blog规则匹配的代理域名。

说明:程序会自动对代理请求返回的结果进行备份,备份目录为/mock/proxy,生成的文件名是根据请求地址自动生成的。大部分时候不需要搭理这些备份文件。

返回JSON静态数据

修改配置文件中的config.jsonTable即可。示例配置如下:

jsonTable: [
  '/manage2/intention/list',
  '/manage2/carInsurance/queryDetails',
  '/manage2/carInsurance/updateQuotation',
  '/manage2/order/list',
  '/manage2/order/queryDetails',
  '/manage2/order/updateSalesman',
  '/manage2/order/update'
]

如上配置对应的描述如下:

若本地发起了请求地址为“/manage2/intention/list”的请求,则服务器会将/mock/json/manage2-intention-list.json的内容予以返回。

注意:需要在启动服务器之前,先在/mock/json目录下手动建立对应的json文件,并自行填充数据;如果您未手动新建json文件,程序会自动帮你新建一个内容为“{}”的json文件,内容还需您自行填充。一般来说用后面这种方法会比较方便,修改了文件后程序会自动重启的,不需要重复操作命令行工具。

小技巧:可以将程序在/mock/proxy目录下生成的备份文件拷贝至此处使用。

返回JS自定义数据

修改配置文件中的config.customTable即可。示例配置如下:

customTable: [
  '/great/what'
]

如上配置对应的描述如下:

若本地发起了请求地址为/great/what,则服务器会将/mock/custom/great-what.js文件中导出的函数予以调用,并将函数返回值发送至前端。

注意:在启动服务器之前,先在/mock/custom目录下手动建立对应的js文件,在该js文件中通过module.exports导出一个函数,该函数需要返回一个json数据(也可以让程序自动创建该文件,程序自动创建的文件会默认写入“module.exports = (req) => { return {} }”来作为占位内容);另外,该函数可接收一个表示请求的req参数,从而可以根据req来判断请求方式、传参等来动态输入自定义内容。

说明:之所以在自定义js文件中导出函数而非直接导出数据,是为了便于服务器返回随机数据。

说明:程序内置了mockjs模块(官方文档),可以直接使用这个模块生成一些随机数据。

如下为一份使用了mockjs模块自定义数据的js文件的内容:

const Mock = require('mockjs')

const returnRes = (req) => {
  return Mock.mock({
    // 属性 list 的值是一个数组,其中含有 1 到 10 个元素
    'list|1-10': [{
      // 属性 id 是一个自增数,起始值为 1,每次增 1
      'id|+1': 1
    }],
    // 请求方式
    method: req.method,
    // 传参
    params: (() => {
      if (req.method === 'POST') {
        return req.body
      } else if (req.method === 'GET') {
        return req.query
      }
    })()
  })
}

module.exports = returnRes

设置服务端口

修改配置文件中的config.port字段,默认启用端口号为3000。

设置静态文件根路径的访问地址

将您的前端文件或其他静态文件放置于public目录下,然后修改配置文件中的config.root,config.root的值将与public目录直接映射。config.root的默认值为"/test",即"/test/index.html"将会访问public目录下的index.html文件。

说明:

  • 访问"/test"和访问"/test/index.html"访问的是同一个文件,因为程序设定的默认首页为index.html。

License

The MIT License (MIT)

MIT License Copyright (c) 2016 Yakima Teng Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

暂无描述 展开 收起
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/yakima/mock-server.git
git@gitee.com:yakima/mock-server.git
yakima
mock-server
mock-server
master

搜索帮助