精华内容
下载资源
问答
  • Linux下mock服务器搭建

    2017-07-13 10:54:00
    登录到Linux服务器,我用的是xshell 1.安装JDK 这是大多数中间件的前提 2.采用java安装 首先下载:mock serve的包 wget ...
    登录到Linux服务器,我用的是xshell
    1.安装JDK   这是大多数中间件的前提
    2.采用java安装
    首先下载:mock serve的包
    wget http://search.maven.org/remotecontent?filepath=org/mock-server/mockserver-netty/3.10.1(版本)/mockserver-netty-3.10.1-jar-with-dependencies.jar -O mockserver-netty-3.10.1-jar-with-dependencies.jar
     然后通过java-jar启动:
    java -jar mockserver-netty-3.10.1-jar-with-dependencies.jar(不在当前路径下的话,需要制定路径) -serverPort 1080(启动的端口号,只要未被占用就可以)
     
    3.配置自己的***.json文件
    例如:test.json
    里面写上自己需要发的请求,以及response:
    eg:
    [
      {
        "request" :
          {
            "uri" : "/v3/control",
            "method":"post",
            "forms":{ "did": "A4294012D492"}     其实请求体里面的参数无所谓,我只希望调用这个接口的时候,只要能返回给我希望的值就好
          },
        "response" :
          {
           "code": 1000000,
          "data": "发送下发控制命令成功"
     
          }
      },
      {
        "request" :
          {
            "uri" : "/***/***"
          },
        "response" :
          {
            "date" : "0"
          }
      },
      {
        "request" :
          {
            "uri" : "/list"
          },
        "response" :
          {
            "text" : "null"
          }
      }
    ]
     
    4.启动端口访问:
    java -jar moco-runner-0.11.0-standalone.jar(这个需要预先下载) start -p 12306(随便起的端口号) -c test.json
     
    5.访问:http://服务器地址:端口号/+url(自己定义的)
     
     
     

    转载于:https://www.cnblogs.com/hssblog/p/7159293.html

    展开全文
  • 快速搭建本地mock服务器

    千次阅读 2019-04-12 00:45:46
    mock-server是一个为开发环境快速搭建数据服务器的脚本工具,启动服务器仅只需要一个mockjs格式的模板文件即可。...# 快速启动mock服务器 mock -p 9999 -f ./_mock.js 复制代码参数说明 port,服务器端口号,默...

    mock-server是一个为开发环境快速搭建数据服务器的脚本工具,启动服务器仅只需要一个mockjs格式的模板文件即可。

    脚本将启动本地服务器,然后匹配mock模板内的url返回对应的数据

    使用

    # 全局安装
    npm i @shymean/mock-server -g
    # 快速启动mock服务器
    mock -p 9999 -f ./_mock.js
    复制代码

    参数说明

    • port,服务器端口号,默认7654,简写 -p
    • file,mock模板文件路径,默认./_mock.js,简写 -f

    mockjs模板语法

    使用该工具只需要准备一个mock模板文件,其语法参考

    // _mock.js
    // 对应的rurl会被中间件拦截,并返回mock数据
    // ANY localhost:9999/
    Mock.mock('/', {
        data: [],
        msg: "hello mock",
        "code|1-4": 1,
    })
    
    // 可以mock指定的请求方法
    // POST localhost:9999/test
    Mock.mock('/test', 'POST', {
        data: [],
        msg: "hello mock",
        "code|1-4": 1,
    })
    
    // 扩展rtype,支持jsonp形式,使用param传入对应的回调名
    // GET JSONP localhost:9999/test
    Mock.mock('/test', {
        type: 'jsonp',
        param: 'callbackName'
    },{
        code: 0,
        msg: 'hello from mock jsonp',
        data: {
            "id|1000-9999": 1,
        }
    })
    
    // 默认回调名称 callback
    Mock.mock("/test2", "jsonp", {
        code: 0,
        msg: "hello from mock jsonp2",
        data: {
            "id|1000-9999": 1,
        }
    });
    复制代码

    自定义请求头匹配

    有时候某个相同的url请求,根据业务参数需要返回不同的模拟数据,因此提供了自定义匹配请求url的功能,需要在模板文件中实现Mock.parseUrl方法即可,该方法返回一个用于匹配的rurl

    Mock.parseUrl = function(ctx){
        // ctx为koa上下文对象
        return 'someUrl'
    }
    
    Mock.mock('someUrl', {code: 0})
    复制代码

    nginx配置

    为了避免在业务代码中使用localhost域名,最佳实践方案是开发时将业务域名(如xxx.test.com)指向本地

    127.0.0.1 xxx.test.com
    复制代码

    然后通过nginx配置反向代理到mock服务器

    server {
        listen 80;
        server_name xxx.test.com;
    
        # 根据location判断需要使用mock数据的接口
        location /j/cn/control/api {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_pass http://127.0.0.1:9999; # mock -p 9999 指令启动的服务器的端口号
        }
    }
    复制代码

    Feature

    • 与mockjs浏览器端共用同一套mock模板,方便迁移和代码维护
    • 支持jsonp请求
    • 数据模板热更新,修改模板文件后,将自动重启服务器

    Todo

    • 支持映射本地文件,比如样式表、图片等

    转载于:https://juejin.im/post/5cafdf03f265da0380435d6c

    展开全文
  • windows环境下简答的mock服务搭建 json-server搭建api mock服务 步骤: 1.安装Node.js 地址:https://nodejs.org/en/ 2.安装npm,安装上一个的时候选择自动安装即可默认安装完成 3.npm install json-server -save ...

    windows环境下简答的mock服务搭建

    json-server搭建api mock服务
    步骤:
    1.安装Node.js   地址:https://nodejs.org/en/
    2.安装npm,安装上一个的时候选择自动安装即可默认安装完成
    3.npm install json-server -save  安装json-server,并将安装文件保存到当前目录下

    4.mock数据配置:参考4个文件的配置:

    config.js:用于配置请求的ip,端口,配置json文件(即最终希望mock返回的数据)

    server.js:服务的处理逻辑设置

    middle.js:中间文件,主要是为了解决mock post请求的数据,会自动添加结果插入数据,但是希望是返回固定的值,将POST转化

    所以将POST过来的请求,转换成了Get

    db.json:mock的json数据配置:

    举例:{
      "fileUpload":
        {
          "msg": "成功",
          "sign": "20ed0656c4fce436506bb777ce6bc5b5",
          "status": 1000
        }
    }
    5.其他启动方式:npm run server

    6.可以通过http请求进行访问啦

     

    Linux下mock的环境搭建

    使用moco-runner搭建测试服务器
    需要拥有管理员权限:
    1.安装Node.js  通过命令直接下载安装
     sudo wget https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/0.11.0/moco-runner-0.11.0-standalone.jar
     
     配置环境变量-软链接:
     sudo ln -s /usr/local/nodejs/bin/node /usr/local/bin
     sudo ln -s /usr/local/nodejs/bin/npm /usr/local/bin

     执行命令:node -v     
                     npm  -v

     能看到版本即代表安装配置成功。

    2.下载moco服务:
     sudo wget https://repo1.maven.org/maven2/org/mock-server/mockserver-netty/5.9.0/mockserver-netty-5.9.0-jar-with-dependencies.jar

    3.配置需要进行moco的测试数据:XXXX.json

     格式参考如下:

     [
     {
      "request":{
       "uri":"/vehicle/api/deviceId/file/upload",
       "method":"POST"
       },
      "response":{
          "json":{
           "status":1000,
           "msg":"成功",
           "sign":"20ed0656c4fce436506bb777ce6bc5b5"
       }
      }
     }
     ,
     {
      "request":{
       "uri":"/vehicle/api/deviceId/event/report",
       "method":"POST"
       },
      "response":{
          "json":{
           "status":1000,
           "msg":"成功",
           "sign":"20ed0656c4fce436506bb777ce6bc5b5"
       }
      }
     }
    ]

    4.启动并运行服务:java -jar moco-runner-0.11.0-standalone.jar start -p 9999 -c test.json

    5.通过url访问接口模拟测试:

    http://XXXXXX:端口//vehicle/api/deviceId/event/report,配置的post就必须是post的请求方式,Get的就无数据返回了

    展开全文
  • 主要介绍了详解vue-cli项目中用json-sever搭建mock服务器,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 快速搭建本地、测试环境Mock服务器 安装 npm install easy-mock 或者 git clone git@github.com:518yxx/easy-mock.git 运行 node index.js 使用 访问 在当前目录放入任意文件,访问 “127.0.0.1:4444/[文件名]” ...
  • 搭建mock服务器(微信小程序) 如何在微信小程序使用mock.js实在是个问题,为了完全模拟访问路由和数据,选择在搭建本地mock服务器是一个不错的选择。 以下示例了一个mock服务器搭建过程以及以学生为对象进行增删改...

    搭建mock服务器(微信小程序)

    如何在微信小程序使用mock.js实在是个问题,为了完全模拟访问路由和数据,选择在搭建本地mock服务器是一个不错的选择。

    以下示例了一个mock服务器的搭建过程以及以学生为对象进行增删改查分页的示例。

    前提要求

    安装了node.js

    创建服务器

    1. 我们在自己电脑上选择一个位置,创建一个新的文件夹mockServer,用vscode打开这个文件夹
    2. 使用命令安装以下模块
    cnpm install express body-parser cors nodemon mockjs --save
    • express node.js框架
    • body-parser 用于解析url
    • cors 用来解决跨域问题
    • nodemon 解决代码改变需要自己手动重启服务器的问题,nodemon检测到代码改变会自己启动服务器
    • mockjs mock模拟工具
    1. 建立文件和目录

    (1)使用npm init -f生成一个package.json文件

    ​ 修改为使用 nodemon 启动

    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "nodemon server.js"
      },

    (2)创建server.js文件,mock目录

    mockServer目录

    1. server.js中写入以下代码用于测试,在控制条输入npm start启动服务器
    const express = require('express');
    const bodyParser = require('body-parser');
    const cors = require('cors');
    
    const app = express();
    app.use(bodyParser.urlencoded({ extended: true }));
    app.use(bodyParser.json());
    app.use(cors());
    
    app.get('/posts', (req, res) => {
      res.send([
        {
          title: 'Hello World!',
          description: 'Hi there! How are you?'
        }
      ]);
    });
    
    //  指定端口
    const PORT = 8081;
    
    app.listen(PORT, () => {
      console.log(`服务器启动,运行为http://localhost:${PORT}`);
    });

    控制台将会输出服务器启动,运行为http://localhost:8081;我们在浏览器中访问http://localhost:8081/posts,出现以下内容,那么说明服务器创建成功。

    [
        {
        "title": "Hello World!",
        "description": "Hi there! How are you?"
        }
    ]

    创建mock接口

    1. 在mock文件夹下新建2个文件,一个index.js用于声明路由,一个student.js,用来编写模拟学生对象相关操作代码。
    2. 在student.js编写相关操作代码
    //  student.js
    const Mock = require('mockjs');
    let list = [];
    const count = 100;
    
    for (let i = 0; i < count; i++) {
      list.push(
        Mock.mock({
          id: '@increment',
          stuNo: 20220000 + parseInt(`${i + 1}`),
          stuName: '@cname',
          stuGender: '@integer(0,1)',
          stuPhone: /^1[0-9]{10}$/,
          stuBirthday: '@date("yyyy-MM-dd")',
          classNo: '@integer(201901,201912)'
        })
      );
    }
    
    //  增加学生
    exports.add = (req, res) => {
      const { classNo, stuBirthday, stuGender, stuName, stuPhone } = req.body;
      list.push({
        id: list[list.length - 1].id + 1,
        stuNo: list[list.length - 1].stuNo + 1,
        classNo: classNo,
        stuBirthday: stuBirthday,
        stuGender: stuGender,
        stuName: stuName,
        stuPhone: stuPhone
      });
      let msg = {
        code: 20000,
        data: {
          listNum: list.length,
          message: '添加成功!'
        }
      };
      res.status(200).json(msg);
    };
    
    //  删除学生
    exports.delete = (req, res) => {
      const id = req.params.id;
    
      //  判断id是否存在
      let flag = list.some(item => {
        if (item.id == id) {
          return true;
        }
      });
    
      if (flag) {
        // id 存在
        list = list.filter(item => item.id !== parseInt(id));
        const msg = {
          code: 20000,
          data: {
            listNum: list.length,
            message: '删除成功!'
          }
        };
        res.status(200).json(msg);
      } else {
        //  id不存在
        const msg = {
          code: 40000,
          data: {
            msg: 'id不存在!'
          }
        };
        res.status(500).json(msg);
      }
    };
    //  更新学生信息
    exports.update = (req, res) => {
      const { id, classNo, stuBirthday, stuGender, stuName, stuPhone } = req.body;
    
      //  判断id是否存在
      let flag = list.some(item => {
        if (item.id == id) {
          return true;
        }
      });
    
      if (flag) {
        //  id存在
        list.some(item => {
          if (item.id === id) {
            item.classNo = classNo;
            item.stuBirthday = stuBirthday;
            item.stuGender = stuGender;
            item.stuName = stuName;
            item.stuPhone = stuPhone;
          }
        });
        let msg = {
          code: 20000,
          data: {
            message: '更新成功!'
          }
        };
        res.status(200).json(msg);
      } else {
        //  id不存在
        const msg = {
          code: 40000,
          data: {
            msg: 'id不存在!'
          }
        };
        res.status(500).json(msg);
      }
    };
    //  查询学生信息
    exports.find = (req, res) => {
      let { queryStr, page = 1, limit = 10 } = req.body;
      //  根据学生姓名查询学生或者返回所有学生信息
    
      const mockList = queryStr && queryStr.length > 0 ? list.filter(item => item.stuName.includes(queryStr)) : list;
      //  数据分页
      const pageList = mockList.filter((item, index) => index < limit * page && index >= limit * (page - 1));
      let msg = {
        code: 20000,
        count: mockList.length,
        data: pageList
      };
      res.status(200).json(msg);
    };
    
    //  根据id返回学生信息
    exports.findById = (req, res) => {
      const id = req.query.id;
      const pageList = list.filter(item => item.id == id);
      const msg = {
        code: 20000,
        data: pageList
      };
      res.status(200).json(msg);
    };
    1. 定义路由
    //  index.js
    module.exports = function(app) {
      const student = require('./student');
    
      //  新增学生
      app.post('/student/add', student.add);
    
      //  删除学生
      app.delete('/student/delete/:id', student.delete);
    
      //  更新学生信息
      app.put('/student/update', student.update);
    
      //  查询学生信息
      app.post('/student/list', student.find);
    
      //  查询单个学生接口
      app.get('/student', student.findById);
    };
    1. server.js中引入index.js文件,删除定义的posts接口
    const express = require('express');
    const bodyParser = require('body-parser');
    const cors = require('cors');
    
    const app = express();
    app.use(bodyParser.urlencoded({ extended: true }));
    app.use(bodyParser.json());
    app.use(cors());
    
    //  引入路由文件
    require('./mock/index')(app);
    
    //  指定端口
    const PORT = 8081;
    
    app.listen(PORT, () => {
      console.log(`服务器启动,运行为http://localhost:${PORT}`);
    });

    测试接口

    以下为在小程序中编写的测试代码

    <!--index.wxml-->
    <view class="container">
      <button catchtap='getStudent'>获取学生信息</button>
      <button catchtap='deleteStudent'>删除学生信息</button>
      <button catchtap='addStudent'>新增学生信息</button>
      <button catchtap='updateStudent'>更新学生信息</button>
      <button catchtap='findStudent'>查询单个学生</button>
    </view>
    //index.js
    //获取应用实例
    const app = getApp()
    
    Page({
      data: {},
      getStudent:function(){
        wx.request({
          url: 'http://localhost:8081/student/list',
          data:{
            queryStr:'',
            page:1,
            limit:10
          },
          method: 'POST',
          success: function (res) {
            console.log('访问成功:', res);
          },
          fail: function (e) {
            console.log('访问失败:', e);
          },
          complete: function () {
            console.log('访问完成');
          }
        })
      },
      deleteStudent:function(){
        wx.request({
          url: 'http://localhost:8081/student/delete/1',
          method: 'DELETE',
          success: function (res) {
            console.log('访问成功:', res);
          },
          fail: function (e) {
            console.log('访问失败:', e);
          },
          complete: function () {
            console.log('访问完成');
          }
        })
      },
      addStudent:function(){
        wx.request({
          url: 'http://localhost:8081/student/add',
          data:{
            classNo:'201901',
            stuBirthday:'2019-05-31',
            stuGender:0,
            stuName:'李小珍',
            stuPhone:'12345678910'
          },
          method: 'POST',
          success: function (res) {
            console.log('访问成功:', res);
          },
          fail: function (e) {
            console.log('访问失败:', e);
          },
          complete: function () {
            console.log('访问完成');
          }
        })
      },
      updateStudent:function(){
        wx.request({
          url: 'http://localhost:8081/student/update',
          data: {
            id:1,
            classNo: '201901',
            stuBirthday: '2019-05-31',
            stuGender: 0,
            stuName: '李小珍',
            stuPhone: '12345678910'
          },
          method: 'PUT',
          success: function (res) {
            console.log('访问成功:', res);
          },
          fail: function (e) {
            console.log('访问失败:', e);
          },
          complete: function () {
            console.log('访问完成');
          }
        })
      },
      findStudent:function(){
        wx.request({
          url: 'http://localhost:8081/student?id=2',
          data: {},
          method: 'GET',
          success: function (res) {
            console.log('访问成功:', res);
          },
          fail: function (e) {
            console.log('访问失败:', e);
          },
          complete: function () {
            console.log('访问完成');
          }
        })
      }
    })

    返回的结果如下:

    1. 获取学生信息

    获取学生信息

    1. 删除学生信息

    删除学生信息

    3.新增学生信息

    新增学生信息

    1. 更新学生信息

    更新学生信息

    PS:因为前面id被删除了,所以这个时候更新会报错

    1. 根据id查询单个学生

    根据id查询单个学生

    2019/05/31 18:56

    转载于:https://www.cnblogs.com/yejingping/p/10956983.html

    展开全文
  • ##基于express和mock.js搭建自己的前后端分离Mock服务器 运行$ npx express-generator api-server创建一个express项目 $ cd api-server进入项目目录 $ npm install安装项目所需要的依赖 $ npm install ...
  • express + mockjs 搭建mock服务器 安装 // 安装express mockjs npm install express mockjs -D //安装热更新 supervisor npm install supervisor 构建服务 // 源码 const express = require("express") const app...
  • mock server的搭建 作用: 提供mock假数据,便于开发效率,总不能等别人全部写好吧; 首先安装nodejs的环境 (安装环境) 流程: homebrew -&amp;amp;amp;amp;amp;gt; node ruby -e &amp;amp;amp;...
  • response_data = server.createResponseData(MockData.get(heroId)); resolve(response_data, response_header); }); }; //模拟的数据 const MockData = new Map ([[key, value],[key, value]]); 复制...
  • 服务器搭建easy-mock

    2020-08-23 00:18:29
    暂时没有服务器可以看这篇本地搭建Easy-Mock 开搞 1.先通过ssh工具连接到你的服务器 ssh root@你的服务器地址 当你看到下面这张图,恭喜你,连接服务器成功,阿里BABA的怀抱向你敞开~~ 2.安装node 检查...
  • 文章目录mock 服务搭建@[toc]项目对比easy-mock搭建到本地】参考:项目:演示【可以直接使用】mockcat开始搭建MongoDB 的搭建yum安装nodeeasy-mock 配置部署启动一些想法 项目对比 easy-mock搭建到本地】 非常...
  • Android开发中Mock搭建本地服务器

    千次阅读 2017-06-06 17:25:16
    简介在开发初期,不可能等待后台API开发完再进行APP开发,这也太没效率了。我们希望APP和API同时开发,这是我们的理想状态。MockNet就是做这个事的,没发现这个开源项目之前,只能不停的创建本地Mock类来模拟API。
  • 为了使前后端人员只需要定义好接口文档就可以开始并行工作,互不影响,mock便是最好的解决方案之一,能够加快前后端测试组人员的开发速度
  • 在尝试做一个前后端分离的个人博客的时候,由于前后端都需要自己完成,所以首先需要把前端页面写好,但同时需要调用接口,后端代码却还没有开动,怎么办呢,所以这时候就需要自己搭建来模拟假数据了。 在以前的...
  • 全局安装json-servernpm install json-server -g在项目目录下创建mock文件夹,并在文件夹下创建db.json文件文件格式如下:{ "slides": [{ "src": "/static/img/right1.png", "title": "xxx1", "href": "#" }, {
  • mock可以让你在没有后端程序的情况下能真实地在线模拟 ajax 请求,实现前后端分离。大大提高前端开发的效率。目前线上有免费提供mock的平台https://www.fastmock.site/#/,但是在真实的项目开发中,涉及的敏感数据就...
  • 在使用vue-cli开发项目时,无论后台接口是否开发完成,我们都可以自己使用本地json数据...前提:已经使用vue-cli搭建好了项目 1、全局安装json-server npm install json-server -g 或使用 cnpm install json-s...
  • 2、项目目录下创建mock文件夹 3、mock文件夹下添加db.json文件,内容如下: { "posts": [ { "id": 1, "title": "jk", "author": "Anne" } ], &...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,881
精华内容 2,352
关键字:

mock服务器搭建