用nodejs+express搭建前端测试服务端
平时开发前端应用,如果没有现成的后端接口调试,又要保证前端进度,该怎么办呢,当然办法还是很多的,很多大牛都分享过很多经验,我也来说说我常用的方法。
请求本地数据文件
把本地数据放到程序指定目录,发起http请求时候,用get请求到这个目录中指定文件
以jquery的ajax为例:
postRequest: function(model, async) {
if(!model) {
return null;
}
if(Common.urlParams.d) {
url = "../data/" + model.method + ".json";
model.type = "GET";
} else {
url = service-api-path + model.method; //service-api-path是后端接口公共地址
}
return $.ajax({
async: (async == undefined || async) ? true : false,
url: url,
type: model.type,
dataType: "json",
timeout: 30000,
data: model.params,
beforeSend: function(x, settings) {
//todo..
},
complete: function(x, status) {
//todo..
},
error: function(x, h, r) {
//todo
}
});
}
这个例子是在访问页面的时候在链接中添加一个d参数,参数值任意,就可以调用本地数据,这个方法只能读取文件,内容是比较死板的,下面就说说另外一种方法
用nodejs+express
用nodejs弄个web服务器是灰常简单的,这也是很多开发者都会用nodejs做个中转服务,下面介绍下怎么搭建测试服务
app.js
var path = require('path'),
express = require('express'),
bodyParser = require('body-parser'),
cookieParser = require('cookie-parser'),
autoRoutes = require('express-auto-routes'),
server = require('./server');
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
var routes = autoRoutes(app);
app.use(server);
app.use(function(req, res, next) {
res.status(404);
next({ _code: 404, _msg: 'Page not found' });
});
app.use(function(err, req, res, next) {
console.error(err);
if (err._status) res.status(err._status);
res.json({
_code: err._code || 1,
_msg: err._msg || err
});
});
var server;
if (!module.parent) {
var PORT = 8989;
console.log('[INFO] Msg board RESTful API listening at localhost:%s', PORT);
server = app.listen(PORT);
} else {
module.exports = app;
}
server.js
var dbm = require('./dbm'),
_ = require("lodash");
module.exports = function(req, res, next) {
let data = [],
params = {},
url = req.originalUrl,
db = new dbm(`./db/${url.slice(url.lastIndexOf('/') + 1, url.length)}.json`).read()
data = _filter(db, req.body)
res.json({ timestamp: new Date().getTime(), msg: "查询成功", isSuccess: 0, data: data })
}
const _filter = (db, obj) => {
if (!obj) return
return _.filter(db, o => { return obj.dateTime == o.dateTime })
}
dbm.js
var fs = require('fs'),
path = require('path');
function dbm(relativePath) {
this.db = path.resolve(__dirname, relativePath);
}
dbm.prototype._isAvailable = function() {
return fs.existsSync(this.db);
};
dbm.prototype.read = function() {
if (!this._isAvailable()) return null;
var contentInStr = fs.readFileSync(this.db, 'utf-8'),
content;
try {
content = JSON.parse(contentInStr);
} catch (e) {
//this.delDb();
console.error('[ERR] JSON.parse failed, deleted ' + this.db);
}
return content || null;
};
dbm.prototype.save = function(data) {
var stringToSave = JSON.stringify(data);
if (!stringToSave) return;
fs.writeFileSync(this.db, stringToSave, 'utf-8');
};
dbm.prototype.delDb = function() {
try {
fs.unlinkSync(this.db);
} catch (e) {
console.error('DB file does not exist');
}
};
module.exports = dbm;
demo.json
[{
"name": "jack",
"age": 18,
"id": "124443",
"dateTime": "20170101"
},
{
"name": "tom",
"age": 21,
"id": "1232323",
"dateTime": "20170103"
},
{
"name": "alix",
"age": 22,
"id": "123232323",
"dateTime": "20170102"
}
]
致此,服务器基本完事了,json文件存放内容依照mongodb或者按照mysql数据记录来就行了,引入lodash库操纵数组完成增删改查完全不在话下,当然也可以拓展成为真正的服务器嘛,毕竟很多项目直接就是nodejs开发的服务端
完整示例:https://github.com/dawnyu/node-simple-server.git
原发:http://dawns.me/2017/05/05/%E7%94%A8nodejs+express%E6%90%AD%E5%BB%BA%E5%89%8D%E7%AB%AF%E6%B5%8B%E8%AF%95%E6%9C%8D%E5%8A%A1%E7%AB%AF/
用nodejs+express搭建前端测试服务端的更多相关文章
- 用Nodejs+Express搭建web,nodejs路由和Ajax传数据并返回状态,nodejs+mysql通过ajax获取数据并写入数据库
小编自学Nodejs,看了好多文章发现都不全,而且好多都是一模一样的 当然了,这只是基础的demo,经供参考,但是相信也会有收获 今天的内容是用Nodejs+Express搭建基本的web,然后呢no ...
- [NodeJs] 用Nodejs+Express搭建web,nodejs路由和Ajax传数据并返回状态,nodejs+mysql通过ajax获取数据并写入数据库
小编自学Nodejs,看了好多文章发现都不全,而且好多都是一模一样的 当然了,这只是基础的demo,经供参考,但是相信也会有收获 今天的内容是用Nodejs+Express搭建基本的web,然后呢no ...
- Nodejs+Express 搭建 web应用
简单的记录下关于如何使用nodejs+Express 极速搭建一个web应用. 项目所需,要用到nodejs,那就去学咯.简单的看了下 七天学会NodeJS,Node.js 教程.发现其实好简单的,分 ...
- nodejs+express搭建小程序后台服务器
本文使用node.js和express来为小程序搭建服务器.node.js简单说是运行在服务端的javascript:而express是node.js的一个Web应用框架,使用express可以非常简 ...
- nodejs+express搭建服务器
1.Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具. 使用 Express 可以快速地搭建一个完整功能 ...
- nodejs express搭建一个网站整理
先前用安卓完成了一个优惠券搜索的app,发现在app上操作比较麻烦,于是决定弄个网页版的.做网站是自己的擅长的,毕竟毕业之后咱一直用asp.net mvc做网站也好几个年头了. 可是这次我又想换个方式 ...
- 用“MEAN”技术栈开发web应用(二)express搭建服务端框架
上一篇我们讲了如何使用angular搭建起项目的前端框架,前端抽象出一个service层来向后端发送请求,后端则返回相应的json数据.本篇我们来介绍一下,如何在nodejs环境下利用express来 ...
- 【nodejs之我的开源module】 使用express搭建web服务器,代码即文档的实现。
前言 都说nodejs适合制作restful_API,因为它有异步处理能力,能吞吐更多的请求,这一点是大家都认可的.前不久我使用nodejs+express+postgresql搭建了一个restfu ...
- vue2+nodejs+mongodb搭建移动端网站
从零开始一步步搭建移动端网站,持续更新,github代码如下,因为放了视频文件,下载可能有点慢 https://github.com/lanleilin/myHomepage 前端采用Vue2+vue ...
随机推荐
- 【shell基础】条件测试
例1 判断目录是否存在 #!/usr/bin/bash back_dir=/var/mysql_back if ! test -d $back_dir;then mkdir -p $back_dir ...
- 九、linux-msyql下的mysql主从复制深度实战
1.上节基本诉说了mysql主从同步,这里想说明的是,其一从库在请求主库进行同步的时候,是主库的主线程进行用户名.密码的验证,在验证通过后,将请求转交给I/O线程负责同步:其二从库sql线程在读取中继 ...
- 二十五、SSH服务企业级应用场景
一.需求分析: 要求所有服务器在同一个用户oldboy1系统用户下,实现A机器从本地分发数据到B\C机器上,在分发过程中不需要B\C的提示系统密码验证,除了分发功能,还需要可以批量查看客户上的cpu. ...
- MOOC(11)- 获取cookie后存到json中
获取cookie后转成字典格式 把字典格式cookie存到json数据中 需要在表格中写好关键字,判断是否写cookie.是否读cookie 在需要用cookie的时候根据键去json中取值 # 1. ...
- 学习python-20191108(1)Mysql、Flask
一.使用pymysql模块操作MYSQL 导入pymysql模块: pip install pymysql 1.增删改 import pymysql # 定义数据库连接信息 config = { ...
- python学习笔记(5)数据类型-字典
字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示: d ...
- GBDT的理解和总结
2015/11/21 16:29:29 by guhaohit 导语: GBDT是非常有用的机器学习的其中一个算法,目前广泛应用于各个领域中(regression,classification,ran ...
- 接受H0的坏处|试验误差|置信度由来|
生物统计与实验设计 置信度(0.05 0.01)是通过实验次数估计值的分布得到的,它是整个分布的期望,这个值的确立需要具体情况具体分析. 肯定很难,因为否定一次很容易.虽然如果没有否定(eg:得到p= ...
- jQuery ajax中的参数含义
所有options均可选,下面简要说明每个option 1.async 默认为true,即请求为异步请求,这也是ajax存在的意义.但同时也可以将这个参数设置为false,实现同步请求.(同步请求会锁 ...
- 【Linux_Shell 脚本编程学习笔记一、条件表达式】
条件表达式返回的结果都为布尔型 真为1,假为0 条件测试的表达式 [expression] 比较符 整数比较 -eq:比较两个整数是否相等,$A -eq $B -ne:测试两个整数是否不等,不等则为真 ...