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

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

内容简介:这段时间在开发一个较大的项目,后台前期的准备时间会比较长,后期开发很快,而前台的前期开发会比较快,后期开发也需要等比例的时间,在进度上存在不协调的情况,后台的接口格式已经给出,虽然可以直接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前端自测开发模式

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

查看所有标签

猜你喜欢:

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

Programming Ruby

Programming Ruby

Dave Thomas、Chad Fowler、Andy Hunt / Pragmatic Bookshelf / 2004-10-8 / USD 44.95

Ruby is an increasingly popular, fully object-oriented dynamic programming language, hailed by many practitioners as the finest and most useful language available today. When Ruby first burst onto the......一起来看看 《Programming Ruby》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

SHA 加密
SHA 加密

SHA 加密工具