在开发过程中,前后端不论是否分离,接口多半是滞后于页面开发的。所以建立一个REST风格的API接口,给前端页面提供虚拟的数据,是非常有必要的。对比过多种mock工具后,我最终选择了使用 json server 作为工具,因为它足够简单,写少量数据,即可使用。也因为它足够强大,支持CORS和JSONP跨域请求,支持GET, POST, PUT, PATCH 和 DELETE 方法,更提供了一系列的查询方法,如limit,order等。下面我将详细介绍如何搭建mock数据服务。

一、Node.js安装及环境配置

    首先需要在电脑上安装nodejs环境,建议使用最新版本,具体的操作过程请查阅Node.js安装及环境配置之Windows篇

二、建立前端项目

建立自己的前端项目,如wx.web,在cmd命令行,进入项目根目录下,

     
 

执行命令,D:\工作相关\新建文件夹\front-end project\wx.web > npm init; 命令执行完成后,会在项目根目录,可以看到package.json文件;然后,再按照自己的编码风格,命名前端项目结构目录,

三、使用 JSON Server 搭建 Mock 服务器

全局安装json server,关于json-server相关的api,请阅读json-server官方文档

npm install json-server –g

安装完成后可以用 json-server -h 命令检查是否安装成功,成功后会出现

     
 

   
 

在项目目录下,增加mock文件目录,并新建db.js用于模拟数据服务   

安装mock.js,关于mock.js相关的api, 请先用15分钟阅读mockjs官方文档

    npm install mockjs –save

安装完成后的项目目录结构为

在上一步新建的db.js文件中,写入如下代码

  1. var Mock = require('mockjs');
  2. var Random = Mock.Random;
  3.  
  4. module.exports = function() {
  5.     var data = {
  6.         news: []
  7.     };
  8.     var images = [1,2,3].map(x=>Random.image('200x100', Random.color(), Random.word(2,6)));
  9.     for (var i = 0; i < 100; i++) {
  10.         var content = Random.cparagraph(0,10);
  11.         data.news.push({
  12.             id: i,
  13.             title: Random.cword(8,20),
  14.             desc: content.substr(0,40),
  15.             tag: Random.cword(2,6),
  16.             views: Random.integer(100,5000),
  17.             images: images.slice(0,Random.integer(1,3))
  18.         })
  19.     }
  20.     return data
  21. }

运行mock服务,

json-server mock/db.js;

运行成功后,会显示如下截图:

  并可在浏览器地址栏输入: http://localhost:3000/

 

至此,mock数据服务,已经搭建成功,在代码中的使用也很简单,以下给出代码使用示例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <title>首页</title>
  5.     <meta
    charset="utf-8">
  6.     <script
    type="text/javascript"
    src="//cdn.bootcss.com/jquery/3.1.1/jquery.min.js"></script>
  7.     <style
    type="text/css">
  8.         .hello {
  9.             color: #428bca;
  10.         }
  11.     </style>
  12. </head>
  13. <body>
  14.     <h3>这是index页面</h3>
  15.     <span
    class="hello">你可以点击这里</span>
  16.     <script
    type="text/javascript">
  17.         $(function () {
  18.             var contextPath = 'http://localhost:3000';
  19.             $('.hello').on('click', function () {
  20.                 $.ajax({
  21.                     type: 'get',
  22.                     url: contextPath + '/news',
  23.                     success: function (data) {
  24.                         console.log(JSON.stringify(data));
  25.                     },
  26.                     error: function (data) {
  27.                         console.log("出错了:" + JSON.stringify(data));
  28.                     }
  29.  
  30.                 })
  31.             })
  32.         })
  33.     </script>
  34. </body>
  35. </html>

 

更多的使用示例,请参考博文使用json-server模拟REST API

使用node.js + json-server + mock.js 搭建本地开发mock数据服务的更多相关文章

  1. Mock 之搭建本地 MockJs

    Mock 之搭建本地 MockJs 一.目的 模拟后端接口 二.发请求 1. install npm install axios 2. 配置 src/utils/request.js import a ...

  2. 【vue】本地开发mock数据支持

    项目离不开数据渲染的支持,为本地开发配置 数据  支持. (一)方式一:安装JSON Server搭建mock数据的服务器 json Server 是一个创建 伪RESTful服务器的工具. 配置流程 ...

  3. vue-cli 本地开发mock数据使用方法

    vue-cli 中可以通过配置 proxyTable 解决开发环境的跨域问题,具体可以参考这篇文章: Vue-cli proxyTable 解决开发环境的跨域问题 如果后端接口尚未开发完成,前端开发一 ...

  4. 在macOS下使用MAXPP搭建本地开发服务器简易流程

    本文适用于解决前端开发时所需的服务器支持,包括文件上传和下载.在开发环境中需要保持尽量的开放,并不是安全的.根据浏览器安全协议,所下载的开源项目是不能直接在file中直接打开的,需要把文件放置在服务器 ...

  5. ng2 搭建本地开发环境

    git clone https://github.com/angular/quickstart.git quickstart cd quickstart npm install npm start h ...

  6. 使用Apache+Dreamweaver(或者H-builder)搭建php开发环境

    使用得工具说明 php+Apache服务器+Dreamweaver+mysql数据库 下载安装好wamp,可以在网上直接百度下载,为了方便,我给放个百度云的链接.wamp下载:链接:http://pa ...

  7. MacOS搭建本地服务器

    MacOS搭建本地服务器 一,需求分析 1.1,开发app(ios android)时通常需往app中切入web页面,直接导入不行,故需搭建本地的测试网站服务,通过IP嵌入访问页面. 1.2,开发小程 ...

  8. 一统江湖的大前端(2)—— Mock.js + Node.js 如何与后端潇洒分手

    <一统江湖的大前端>系列是自己的前端学习笔记,旨在介绍javascript在非网页开发领域的应用案例和发现各类好玩的js库,不定期更新.如果你对前端的理解还是写写页面绑绑事件,那你真的是有 ...

  9. 用node.js启动mock.js

    Node.js Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP.Python.Perl.Ruby 等服务端语言平起平坐的脚本语言.官网下载n ...

随机推荐

  1. 最流行的Python编辑器/IDEs你认识吗?

    来源商业新知网,原标题:来!带你认识几种最流行的Python编辑器/IDEs(附链接) 大数据文摘授权转载自数据派THU 作者:By Gregory Piatetsky 格雷戈里·皮亚特斯基,KDnu ...

  2. Linux命令行报错 bash: cannot create temp file for here-document: No space left on device

    今天Linux服务器出问题了,使用"tab"补全命令时,提示 bash: cannot create temp file for here-document: No space l ...

  3. Cdnbest的cdn程序默认支持web Socket

    Cdnbest的cdn程序默认支持web Socket    WSS 是 Web Socket Secure 的简称, 它是 WebSocket 的加密版本. 我们知道 WebSocket 中的数据是 ...

  4. javascript中的类型检测

    最常见的是使用 typeof 来判断数据类型 可以区分4种基本类型,即 “number”,”string”,”undefined”,”boolean”,第5种基本类型null类型返回值为object( ...

  5. vue项目如何通过前端实现自动识别并配置服务器环境地址

    前言: 一般来说,一个web项目的生产环境和测试环境的服务器地址一旦确定下来,很少会频繁变动的.那么就可以单独写一个脚本文件,通过当前访问的域名来判断当前的访问环境,然后再通过一定的规则获取对应的服务 ...

  6. 366. Find Leaves of Binary Tree输出层数相同的叶子节点

    [抄题]: Given a binary tree, collect a tree's nodes as if you were doing this: Collect and remove all ...

  7. javaweb开发.常用的第三方包

      序号 开发包名称 描述 1 dom4j-1.6.1.jar dom4j用于操作XML文件 2 jaxen-1.1-beta-6.jar 用于解析XPath表达式 3 commons-beanuti ...

  8. [快速幂][NOIP2012]转圈游戏

    转圈游戏 题目描述 n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏.按照顺时针方向给 n 个位置编号,从0 到 n-1.最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 1 号位置, ...

  9. 【git】仓库目录下文件不加入版本控制

    如果文件未做过提交操作,在文件所在目录或上级目录新建.gitignore文本文件,将文件的相对路径写入,再将该文本文件提交,则目标文件将被git忽略. 补一个gitignore文件书写规范 2.至于已 ...

  10. 加盟阿里!贾扬清被曝从Facebook离职,任阿里硅谷研究院VP

    3 月 2 日傍晚,知乎上爆出一则 AI 人事变动大消息——Caffe 作者贾扬清将从 Facebook 离职. 短短数小时,就有近 10 万人浏览这个问题.不仅如此,据 AI 前线爆料,贾扬清离开 ...