内容简介:这段时间在开发一个较大的项目,后台前期的准备时间会比较长,后期开发很快,而前台的前期开发会比较快,后期开发也需要等比例的时间,在进度上存在不协调的情况,后台的接口格式已经给出,虽然可以直接mockjson返回,但是在诸多(比如说新增,删除,修改)这些需要有响应的操作面前也显得十分无力,需要一个简易后台,能满足即时开发和调试的需要,具体有以下需求:于是在这些条件的筛选下,最后我选择了nodejs+redis的方案,启动编译很快,数据库的迁移备份和主从都很方便setup.sh
这段时间在开发一个较大的项目,后台前期的准备时间会比较长,后期开发很快,而前台的前期开发会比较快,后期开发也需要等比例的时间,在进度上存在不协调的情况,后台的接口格式已经给出,虽然可以直接mockjson返回,但是在诸多(比如说新增,删除,修改)这些需要有响应的操作面前也显得十分无力,需要一个简易后台,能满足即时开发和调试的需要,具体有以下需求:
- 自动化,别配个环境半天时间
- 协同开发,彼此的数据库可以不一样,但基础必须一致
- 高性能,别编译一下:coffee:都凉了
- 亲和力好,最好就是js,作为前端写起来看起来也方便
于是在这些条件的筛选下,最后我选择了nodejs+redis的方案,启动编译很快,数据库的迁移备份和主从都很方便
这套东西怎么用?
工程目录结构
|—mock_server // 模拟后台的主目录 |——node_modules // 主要有express,redis,body-parser等类库 |——rest // 里面放node的路由,根据模块分类,符合restful规范 |——case.js |——... |——dump.rdb // 用于同步协同开发的数据库备份 |——package.json |——changebase.sh // 数据库变基的时候使用 |——setup.sh // 安装 redis 脚本,确保redis版本一致,只执行一次 |——startup.sh // 启动redis,把dump.rdb放到redis的bin目录下,恢复数据 |——startmock.js // node服务器的入口函数 ... 复制代码
脚本内容
setup.sh
#!/bin/bash # shell的执行选项: # -n 只读取 shell 脚本,但不实际执行 # -x 进入跟踪方式,显示所执行的每一条命令 # -c "string" 从strings中读取命令 # 下载目录 downloadsDir=/root/Downloads # 安装目录 appDir=/usr/local/redis # 判断备份目录是否存在,不存时新建目录 [ ! -d $downloadsDir ] && mkdir -p $downloadsDir cd $downloadsDir # 下载、解压、编译 curl -o redis-stable.tar.gz http://download.redis.io/redis-stable.tar.gz tar xvzf redis-stable.tar.gz cd redis-stable make && make test # 若提示需要tcl或更高版本 # yum install -y tcl # make完后,一般建议make test,我在make test时提示 You need tcl 8.5 or newer in order to run the Redis test # wget http://prdownloads.sourceforge.net/tcl/tcl8.6.0-src.tar.gz # 下载后,进入安装目录,进入unix,然后执行"./configure",然后make,然后make install # 复制执行文件 cp src/redis-server /usr/local/bin/ cp src/redis-cli /usr/local/bin/ # 创建目录 mkdir /etc/redis mkdir /var/redis mkdir /var/redis/log mkdir /var/redis/run mkdir /var/redis/port # 复制redis解压根目录中中的配置文件模板 cp redis.conf /etc/redis/redis.conf # 修改配置文件 echo "################################ WLF DEFINE ##############################" >> /etc/redis/redis.conf echo "daemonize yes" >> /etc/redis/redis.conf echo "pidfile /var/redis/run/redis.pid" >> /etc/redis/redis.conf echo "logfile /var/redis/log/redis.log" >> /etc/redis/redis.conf echo "dir /var/redis/port" >> /etc/redis/redis.conf 复制代码
startup.sh
#!/bin/bash mkdir /usr/local/redis/bin cp ./dump.rdb /usr/local/redis/bin/dump.rdb redis-server /etc/redis/redis.conf 复制代码
changebase.sh
#!/bin/bash rm ./dump.rdb cp /usr/local/redis/src/dump.rdb ./dump.rdb 复制代码
startmock.js
var express = require("express"); var redis = require("redis"); var bodyParser = require("body-parser"); const app = express(); var redisMaster = "127.0.0.1"; var redisClient = redis.createClient({ host: redisMaster, db: 1 }); app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); // Router设置 var vedioTalkRouter = require("./rest/xxx"); app.use("/xx/xxx/xxx/xxxx/xxx", vedioTalkRouter); app.get("/xx/xxx/xxxx/xxx", function(req, res) { redisClient.get("xxx", function(err, items) { res.send(items); }); }); app.listen(3000); 复制代码
启动流程
第一次启动需要安装 redis./setup.sh
之后启动时都 ./startup.sh
之后 node startmock.js
即可
数据库基线调整
注意在有大的变更的时候,需要在终端使用
redis-cli //链接默认本地redis 127.0.0.1:6379> bgsave // 保存当前数据库快照 cd ./mock_server // cd到mock_server的目录底下 ./changebase.sh //执行changebase.sh 复制代码
这些操作会把/usr/local/redis/src中的dump.rdb拷出来,放到工程目录下替换原来的rdb 当下一次redis-server的时候会把这个快照读取到数据库中
注意:高版本数据库的快照低版本读取不了,尽量不要提高redis版本号,如果有提高,则需要安装redis-dump进行同步
数据订正
在开发测试的过程中,需要查看数据库内容的时候可以使用rdm来进行查看和修改
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 关于前端学习路线的一些建议(含面试自测题)
- RDebug:滴滴开源的一款用于 RD 研发、自测、调试的实用工具
- 前端科普系列(三):CommonJS 不是前端却革命了前端
- 前端科普系列(三):CommonJS 不是前端却革命了前端
- 前端技术演进(三):前端安全
- 【前端优化】前端常见性能优化
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
JavaScript王者归来
月影 / 清华大学出版社 / 2008-7 / 86.00元
你手中的这本《JavaScript王者归来》不仅是一本传播知识的书,更是一本求道的书。 本书分为五个部分循序渐进地与读者讨论了JavaScript的方方面面,从简单的语言基础到丰富的实际应用再到深入剖析语言本质的高级话题,字里行间包含着作者多年工作中对JavaScript实践乃至程序设计思想的深入思考和总结。 本书揭开了JavaScript的面纱,绕过误解和虚幻的表象,引领你探索程序王......一起来看看 《JavaScript王者归来》 这本书的介绍吧!