作为前端开发人员,经常需要模拟后台数据,我们称之为mock。通常的方式为自己搭建一个服务器,返回我们想要的数据。json server 作为工具,因为它足够简单,写少量数据,即可使用。

安装

首先需要安装nodejs,建议使用最新版本。然后全局安装json server.

npm install json-server -g

安装完成后可以用

json-server -h 

命令检查是否安装成功,成功后会出现json-server相关的参数选项。

运行

安装完成后,可以在任一目录下建立一个 xxx.json 文件,例如在 mock/ 文件夹下,建立一个 db.json 文件,并写入以下内容,

{
"news": [
{
"id": 1,
"title": "曹县宣布昨日晚间登日成功",
"date": "2016-08-12",
"likes": 55,
"views": 100086
},
{
"id": 2,
"title": "长江流域首次发现海豚",
"date": "2016-08-12",
"likes": 505,
"views": 9800
}
],
"comments": [
{
"id": 1,
"news_id": 1,
"data": [
{
"id": 1,
"content": "支持党中央决定"
},
{
"id": 2,
"content": "抄写党章势在必行!"
}
]
}
]
}

并在 mock/ 文件夹下执行:

 json-server -w db.json -p 3003 

操作数据

GET

这个时候访问 http://localhost:3003/db 可以查看 db.json 文件中所定义的全部数据。

使用浏览器地址栏,jQuery.get 或 fecth({method: "get"}) 访问 http://localhost:3003/news ,则可以看到 news 对象下的数据,以Array格式返回:

[
{
"id": 1,
"title": "曹县宣布昨日晚间登日成功",
"date": "2016-08-12",
"likes": 55,
"views": 100086
},
{
"id": 2,
"title": "长江流域首次发现海豚",
"date": "2016-08-12",
"likes": 505,
"views": 9800
}
]

POST

以jquery的 $.ajax 方法举例,以下代码会实时的向 db.json 中的 news 对象push一条新的数据再次用 get 方式访问http://localhost:3003/news , 就可以看到它了

$.ajax({ type: 'post', url: 'http://localhost:3003/news', data: { "id": 3, "title": "我是新加入的新闻", "date": "2016-08-12", "likes": 0, "views": 0 } } 

使用动态数据

使用 db.json 作为数据载体,虽然方便,但是如果需要大量的数据,则显得力不从心。

幸好 json server 可以通过js动态生成json格式数据,官方例子为生成1000组user数据:

# /mock/db.js

module.exports = function() {
var data = {
users: []
}
for (var i = 0; i < 1000; i++) {
data.users.push({
id: i,
name: 'user' + i
})
}
return data
}

/mock 目录下运行

json-server db.js -p 3003

我们访问 http://localhost:3003/news/ 看到的数据是

[
{
"id": 0,
"name": "user0"
},
{
"id": 1,
"name": "user1"
},
{
"id": 2,
"name": "user2"
},
{
"id": 3,
"name": "user3"
},
...
{
"id": 999,
"name": "user999"
}
]

以上内容大部分来自于网上其他网友的总结,此处只是方便日后自己查看。

附:

作为前端开发人员,有些时候需要搭建一个本地服务器!传统搭建服务器的操作比较繁杂,比如需要安装apache软件等。在此给大家介绍一种比较简单的的搭建本地服务器的方法。

1、安装最新版的nodejs。

2、安装好nodejs之后,打开cmd窗口, 输入

npm install anywhere -g 

全局安装anywhere依赖包。

3、在cmd中进入到需要搭建服务器的目录中(目录最好不要有中文),输入

anywhere 8080

此处的端口号可以根据自己的实际情况来指定,命令执行成功之后浏览器就会自动打开本地服务器目录,一个简单的node服务器就这样搭建好啦!是不是很简单啊~

赶快动手搭建一个自己的本地服务器吧~~~

json server的简单使用(附:使用nodejs快速搭建本地服务器)的更多相关文章

  1. 如何使用nodejs快速搭建本地服务器

    1.首先要安装好node,js 2.以下有安装包下载的链接:这里的安装包是.msi,如果要其他的,可以到菜鸟教程上去找 32 位安装包下载地址 : https://nodejs.org/dist/v4 ...

  2. 利用nodeJs anywhere搭建本地服务器环境【转载】

    首先去nodeJs官网下载最新版nodeJs     https://nodejs.org/en/ 安装成功后win+r打开cmd 输入node -help 或者node -v查看是否安装成功 装好后 ...

  3. 利用nodeJs anywhere搭建本地服务器环境

    1.npm install anywhere -g 如果是mac系统会提示你权限不够,需要在代码前加上 sudo获取管理员权限.即sudo npm install anywhere -g. 2.安装完 ...

  4. 拿nodejs快速搭建简单Oauth认证和restful API server攻略

    拿nodejs快速搭建简单Oauth认证和restful API server攻略:http://blog.csdn.net/zhaoweitco/article/details/21708955 最 ...

  5. nodejs anywhere 搭建本地静态文件服务

    一.背景 工作中有时候往往会遇到下述场景:例如需要将新打好的安装包等文件临时性的给到同事,可能还需要给到多个同事.这时,我们往往有如下几种方案: 1,一般都会有公司内部的文件系统,上传文件后将对应的地 ...

  6. 用nodejs http-server搭建本地服务环境

    一.本地环境,不包括域名的方法: https://www.npmjs.com/package/http-server(参考手册) 正确使用方法:

  7. nodeJS搭建本地服务器

    准备工作: 安装Node JS: 1:安装全局express:在express4.x版本中,安装时语句变为了这样: npm install -g express-generator 2:创建项目: 选 ...

  8. Ubuntu Server 下快速搭建DLNA服务器

    购买了一台二手服务器.用来存储重要图片,视频,代码文档等.突发奇想是否可以让电视访问服务器. 经过一番查找,最终确认三星电视支持DLNA协议.大家对minidlna 都比较看好.就试着搭建这个服务器, ...

  9. 巨杉Tech | 使用 SequoiaDB + Docker + Nodejs 搭建 Web 服务器

    容器化技术的出现大大简化了应用开发人员在构建底层基础设施的工作.SequoiaDB 巨杉数据库于3.2.1版本正式推出了 Docker 容器化部署方案,本文将会基于 SequoiaDB 巨杉数据库与N ...

随机推荐

  1. JavaScript中的函数-7---函数的作用,定义,调用

    JavaScript中的函数 函数也是对象,并且是javascript中的一等公民,可以用来创建普通对象.对象只是属性和值的集合 学习目标 1.掌握函数的作用 2.掌握函数的定义 3.掌握函数的调用 ...

  2. 相对和绝对路径 mkdir cd rm 等命令

     1. 绝对路径和相对路径    个人理解: 绝对路径-----即从根目录开始一直到你需要找的文件或目录的路径 (即任何情况下都以根目录为起点) 相对路径------即从当前目录开始一直找到你需要找的 ...

  3. this语句的知识点第五点

    对不起大家久等了 最后一点 第五点 给元素中的某一个事件绑定方法,当事件触发时,执行绑定的方法,方法中的this指向当前元素. funciton fn(){ console.log(this) } d ...

  4. #505 1&2 A-C 后面未完成

    A. Doggo Recoloring 题目意思是给一个字符串(都是小写字母),如果有两个字符相同,我们可以将这两个字符变成其他字符,问能不能使字符串字母都一样 思路  有两个相同字符时就能:  字符 ...

  5. 监控页面后退前进,浏览器文档加载事件之pageshow、pagehide

    https://www.cnblogs.com/milo-wjh/p/6811868.html http://www.runoob.com/jsref/event-onpageshow.html on ...

  6. python英文与中文的词频统计

    1.统计英文单词, # 1.准备utf-8编码的文本文件file(已在文件夹中定义了 一个名叫“head.txt.rtf”文本文件,详情请见截图) def getTxt(): #3对文本预处理(包括) ...

  7. LeetCode - Boundary of Binary Tree

    Given a binary tree, return the values of its boundary in anti-clockwise direction starting from roo ...

  8. day39Python

     1.Python简介 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它 ...

  9. architecture and business process modelling

    bpmn 架构相关的文章: 转自:https://www.heflo.com/definitions/architecture-business-process-modeling/ BPMN Mode ...

  10. 当 1117 遇到 MLCC 后

    当 1117 遇到 MLCC 后 AMS1117 很多人用过吧,但是当大容量的 MLCC 时会出现什么呢? 会出现问题,而且严重的问题,输出纹波会变大,会自激,会有声音出来. 这是很多工程师没有注意的 ...