Angular+nodeJS+redis前端自测开发模式

栏目: 编程语言 · AngularJS · 发布时间: 5年前

内容简介:这段时间在开发一个较大的项目,后台前期的准备时间会比较长,后期开发很快,而前台的前期开发会比较快,后期开发也需要等比例的时间,在进度上存在不协调的情况,后台的接口格式已经给出,虽然可以直接mockjson返回,但是在诸多(比如说新增,删除,修改)这些需要有响应的操作面前也显得十分无力,需要一个简易后台,能满足即时开发和调试的需要,具体有以下需求:于是在这些条件的筛选下,最后我选择了nodejs+redis的方案,启动编译很快,数据库的迁移备份和主从都很方便setup.sh

这段时间在开发一个较大的项目,后台前期的准备时间会比较长,后期开发很快,而前台的前期开发会比较快,后期开发也需要等比例的时间,在进度上存在不协调的情况,后台的接口格式已经给出,虽然可以直接mockjson返回,但是在诸多(比如说新增,删除,修改)这些需要有响应的操作面前也显得十分无力,需要一个简易后台,能满足即时开发和调试的需要,具体有以下需求:

  1. 自动化,别配个环境半天时间
  2. 协同开发,彼此的数据库可以不一样,但基础必须一致
  3. 高性能,别编译一下:coffee:都凉了
  4. 亲和力好,最好就是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来进行查看和修改

Angular+nodeJS+redis前端自测开发模式

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

虚拟现实:最后的传播

虚拟现实:最后的传播

聂有兵 / 中国发展出版社 / 2017-4-1 / 39.00

本书对“虚拟现实”这一诞生自70年代却在今天成为热门话题的概念进行了历史发展式的分析和回顾,认为虚拟现实是当今最重大的社会变革的技术因素之一,对虚拟现实在未来百年可能给人类社会的各个层面带来的影响进行说明,结合多个大众媒介的发展趋势,合理地推演未来虚拟现实在政治、经济、文化等领域的态势,并基于传播学理论框架提出了几个新的观点。对于普通读者,本书可以普及一般的虚拟现实知识;对于传媒行业,本书可以引导......一起来看看 《虚拟现实:最后的传播》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具