Commit 57699d47 authored by wentao.suo's avatar wentao.suo
parents 3cacb892 7fd38181
...@@ -9,3 +9,5 @@ ...@@ -9,3 +9,5 @@
.DS_Store .DS_Store
qa_shell_script/config_server/node_modules qa_shell_script/config_server/node_modules
.log .log
./qa_shell_script/config_server/package.json
./qa_shell_script/config_server/package-lock.json
...@@ -18,6 +18,7 @@ then ...@@ -18,6 +18,7 @@ then
sh $config_server/show_info.sh $project 连接配置文件 $desc $3 sh $config_server/show_info.sh $project 连接配置文件 $desc $3
project_type=`node $config_server/get_project_config.js -name $project -attr type` project_type=`node $config_server/get_project_config.js -name $project -attr type`
file=`node $config_server/get_project_config.js -name $project -attr config_file` file=`node $config_server/get_project_config.js -name $project -attr config_file`
file=${file:+"application.properties"}
echo "rm -rf /home/quant_group/${project}/$file" echo "rm -rf /home/quant_group/${project}/$file"
rm -rf /home/quant_group/$project/$file rm -rf /home/quant_group/$project/$file
......
...@@ -70,7 +70,7 @@ max_wait_ack_time=700 ...@@ -70,7 +70,7 @@ max_wait_ack_time=700
ack_phrase="JVM\ running\ for" ack_phrase="JVM\ running\ for"
project=$1 project=$1
desc=`node $config_server/get_project_config.js -name $project -attr desc` desc=`node $config_server/get_project_config.js -name $project -attr desc`
run_command_=`node $config_server/get_project_config.js -name $project -attr command_` run_command_=`node $config_server/get_project_config.js -name $project -attr command`
run_commands=(${run_command_//|/ }) run_commands=(${run_command_//|/ })
sh $config_server/show_info.sh $project 重新启动 $desc $ip sh $config_server/show_info.sh $project 重新启动 $desc $ip
cd $project_path/$project cd $project_path/$project
...@@ -107,7 +107,7 @@ mv $project_path/logs/$log_name $project_path/logs/$log_name.$time ...@@ -107,7 +107,7 @@ mv $project_path/logs/$log_name $project_path/logs/$log_name.$time
command1=${run_commands[0]//\^/ } command1=${run_commands[0]//\^/ }
command2=${run_commands[1]//\^/ } command2=${run_commands[1]//\^/ }
command=`echo "nohup java $command1 -jar ${project}.jar $command2" | sed "s#-Didc=default#-Didc=$idc#g"` command=`echo "$command1 -jar ${project}.jar $command2" | sed "s#-Didc=default#-Didc=$idc#g"`
echo $command echo $command
$command > /dev/null 2>&1 & $command > /dev/null 2>&1 &
echo "日志名称:$log_name" echo "日志名称:$log_name"
......
...@@ -11,6 +11,7 @@ var param = { ...@@ -11,6 +11,7 @@ var param = {
var hosts = { var hosts = {
"activity-op": "actapi.xyqb.com", "activity-op": "actapi.xyqb.com",
"activity-op-ui": "activity-op.xyqb.com", "activity-op-ui": "activity-op.xyqb.com",
"account-center":"account.xyqb.com",
//"activity-ui": "activity.xyqb.com", //"activity-ui": "activity.xyqb.com",
"new-activity-ui":"activity.xyqb.com", "new-activity-ui":"activity.xyqb.com",
"xyqb": "api.xyqb.com", "xyqb": "api.xyqb.com",
......
var cproc = require('child_process');
var execSync = cproc.execSync;
var project_name, project_attr, projects = {},
java_projects = [],
node_projects = [],
python_projects = [],
ui_projects = [];
var param = {
type: "",
name: "",
attr: ""
}
projects = String(execSync(`curl -s http://192.168.4.3:10088/config_server/get_project_config_from_db`))
projects = JSON.parse(projects)
// console.log(typeof(projects))
for (var index in projects) {
switch (projects[index]['type']) {
case "java":
java_projects.push(projects[index]);
break;
case "node":
node_projects.push(projects[index]);
break;
case "ui":
ui_projects.push(projects[index]);
break;
case "python":
python_projects.push(projects[index]);
break;
}
}
// // --java
// new pClass().init(1,true,"java", "7042", "xyqb-user2", "head_group", "xyqb-user2.log", "application.properties", "--worker 1 --currentWorker 1 -t -ts", "-Denv=dev -Didc=default -Dtech.localhost= -Dtest=true", "用户注册登录-V2-server", "", "mvn clean package -Ptest -Dmaven.test.skip=true", "");
var temp = "";
process.argv.forEach(function(val, index, array) {
if (index >= 2) {
if (index % 2 == 0) {
temp = val.replace(/\-/, "");
param[temp] = "";
} else {
param[temp] = val;
}
}
});
function getListAttr(projects, attr) {
var list = [];
for (var i = 0; i < projects.length; i++) {
// if (projects[i].is_active) {
list.push(projects[i][attr])
// }
}
return list.join(" ");
}
var configFunction = function() {};
configFunction.prototype = {
getProjectAttr: function(pName, pAttr) {
for (var index in projects) {
if (projects[index]['name'] == pName) {
var attrs = pAttr.split("/");
if (attrs.length == 0) {
console.log("")
return
}
var list = [];
for (var j = 0; j < attrs.length; j++) {
if (projects[index][attrs[j]]) {
list.push(projects[index][attrs[j]].split(" ").join("^"));
} else {
list.push(" ");
}
}
console.log(list.join("|"))
} else {
}
}
},
getProjectsAttrs: function(projects, attr, attr2) {
var attrs = attr.split("/");
if (attrs.length == 0) {
return
}
var list = [];
//attr2 专有参数,用来表示是否要取带有对外域名的服务
if (attr2 == "true") {
for (var i = 0; i < projects.length; i++) {
if (projects[i].url != "") {
var li = [projects[i]["name"]];
for (var j = 0; j < attrs.length; j++) {
li.push(projects[i][attrs[j]]);
}
// li.push(projects[i].url);
list.push(li.join("|"));
}
}
} else {
for (var i = 0; i < projects.length; i++) {
// if (projects[i].is_active){
var li = [projects[i]["name"]];
for (var j = 0; j < attrs.length; j++) {
li.push(projects[i][attrs[j]]);
}
list.push(li.join("|"));
// }
}
}
return list.join(" ");
},
getProjectsAttr: function(type, attr) {
switch (type) {
case "java":
console.log(getListAttr(java_projects, attr));
break;
case "ui":
console.log(getListAttr(ui_projects, attr));
break;
case "python":
console.log(getListAttr(python_projects, attr));
break;
case "node":
console.log(getListAttr(node_projects, attr));
break;
}
}
}
//tower add
module.exports = {
java: java_projects,
node: node_projects,
python: python_projects,
ui: ui_projects
}
var F = new configFunction();
if (param["type"] == "") {
F.getProjectAttr(param["name"], param["attr"]);
} else if (param["type"] == "multi") {
var str = "";
str += F.getProjectsAttrs(java_projects, param["attr"], param["attr2"]);
str += " " + F.getProjectsAttrs(ui_projects, param["attr"], param["attr2"]);
str += " " + F.getProjectsAttrs(python_projects, param["attr"], param["attr2"]);
str += " " + F.getProjectsAttrs(node_projects, param["attr"], param["attr2"]);
console.log(str)
} else if (param["type"] == "hosts") {
console.log(JSON.stringify(hosts));
} else {
F.getProjectsAttr(param["type"], param["attr"]);
}
\ No newline at end of file
...@@ -2,6 +2,7 @@ var express = require('express'); ...@@ -2,6 +2,7 @@ var express = require('express');
var cproc = require('child_process'); var cproc = require('child_process');
var bodyParser = require('body-parser'); var bodyParser = require('body-parser');
var db_config = require('./config/db'); var db_config = require('./config/db');
const mongodb = require('mongodb');
// return // return
var execSync = cproc.execSync; var execSync = cproc.execSync;
var options = { var options = {
...@@ -18,36 +19,36 @@ app.use(bodyParser.urlencoded({ extended: false })) ...@@ -18,36 +19,36 @@ app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json()) app.use(bodyParser.json())
var attrs = { var attrs = {
configPath:"config_file", configPath: "config_file",
buildCmd:"command", buildCmd: "command",
gitPath:"git_path", gitPath: "git_path",
gitGroup:"gitPathHead", gitGroup: "gitPathHead",
host:"www", host: "www",
projectType:"type", projectType: "type",
projectAuth:"auth", projectAuth: "auth",
projectDesc:"desc", projectDesc: "desc",
logName:"log_name", logName: "log_name",
jarFilePath:"target_path", jarFilePath: "target_path",
auth:"auth", auth: "auth",
port:"port", port: "port",
start_command:"", start_command: "",
stop_command:"", stop_command: "",
command2:"command2", command2: "command2",
node_version:"node_version" node_version: "node_version"
} }
var attrComs = Object.keys(attrs) var attrComs = Object.keys(attrs)
var attrComsArr = []; var attrComsArr = [];
for(let i of attrComs){ for (let i of attrComs) {
attrComsArr.push(attrs[i]); attrComsArr.push(attrs[i]);
} }
// ------------UTILS------------ // ------------UTILS------------
function parseStr2Json(str){ function parseStr2Json(str) {
var a = {}; var a = {};
var strs = str.split(" "); var strs = str.split(" ");
for(let i of strs){ for (let i of strs) {
if(i){ if (i) {
let os = i.split("|"); let os = i.split("|");
a[os[0]]={ a[os[0]] = {
name: os[0], name: os[0],
ip: os[1], ip: os[1],
http: os[2], http: os[2],
...@@ -58,10 +59,10 @@ function parseStr2Json(str){ ...@@ -58,10 +59,10 @@ function parseStr2Json(str){
return a return a
} }
function parseJson2Str(json){ function parseJson2Str(json) {
var a = []; var a = [];
let keys = Object.keys(json); let keys = Object.keys(json);
for(let k of keys){ for (let k of keys) {
a.push([ a.push([
json[k].name, json[k].name,
json[k].ip, json[k].ip,
...@@ -76,64 +77,65 @@ function parseJson2Str(json){ ...@@ -76,64 +77,65 @@ function parseJson2Str(json){
let db_conf = db_config.db_config(); let db_conf = db_config.db_config();
let db_conf_keys = Object.keys(db_conf); let db_conf_keys = Object.keys(db_conf);
// //
admin.get('/get_db_config/:name/:attr', function (req, res) { admin.get('/get_db_config/:name/:attr', function(req, res) {
let str = "" let str = ""
if(req.params.name == "all"){ if (req.params.name == "all") {
if(req.params.attr == "name"){ if (req.params.attr == "name") {
res.send(db_conf_keys.join(" ")); res.send(db_conf_keys.join(" "));
} }
}else{ } else {
if(req.params.attr != "all"){ if (req.params.attr != "all") {
res.send(db_conf[req.params.name][req.params.attr]) res.send(db_conf[req.params.name][req.params.attr])
}else{ } else {
let item = db_conf[req.params.name] let item = db_conf[req.params.name]
res.send(`${item.host};${item.port};${item.user};${item.pwd};${item.sys_table_list};`) res.send(`${item.host};${item.port};${item.user};${item.pwd};${item.sys_table_list};`)
} }
} }
}); });
admin.get('/get_db_dump_command/:name/:opt', function (req, res) { admin.get('/get_db_dump_command/:name/:opt', function(req, res) {
if(req.params.opt!="opt"){ if (req.params.opt != "opt") {
res.send(db_config.get_mysql_dump_table(req.params.name)); res.send(db_config.get_mysql_dump_table(req.params.name));
}else{ } else {
res.send(db_config.get_mysql_dump_opt(req.params.name)); res.send(db_config.get_mysql_dump_opt(req.params.name));
} }
}); });
admin.get('/get_db_config/refersh',function(){ admin.get('/get_db_config/refersh', function() {
res.setHeader("Content-Type","application/json"); res.setHeader("Content-Type", "application/json");
db_conf = db_config.db_config(); db_conf = db_config.db_config();
db_conf_keys = Object.keys(db_conf); db_conf_keys = Object.keys(db_conf);
res.send({code:"OK"}) res.send({ code: "OK" })
}) })
// 获取节点命令 // 获取节点命令
admin.get('/get_node_command/:name', function (req, res) { admin.get('/get_node_command/:name', function(req, res) {
res.setHeader("Content-Type","application/json"); res.setHeader("Content-Type", "application/json");
var str = execSync(`node ./get_project_config.js -name ${req.params.name} -attr config_file/command/gitPathHead`) var str = execSync(`node ./get_project_config.js -name ${req.params.name} -attr config_file/command/gitPathHead`)
var items = String(str).replace(/\n/g,"").split("|"); var items = String(str).replace(/\n/g, "").split("|");
var config_file = items[0].replace(/\^/g," "); var config_file = items[0].replace(/\^/g, " ");
var command = items[1].replace(/\^/g," "); var command = items[1].replace(/\^/g, " ");
var gitGroup = items[2].replace(/\^/g," "); var gitGroup = items[2].replace(/\^/g, " ");
res.send({configPath:config_file,buildCmd:command,gitGroup:gitGroup}); res.send({ configPath: config_file, buildCmd: command, gitGroup: gitGroup });
}); });
// 获取项目配置 // 获取项目配置
admin.get('/get_project_attr/:name', function (req, res) { admin.get('/get_project_attr/:name', function(req, res) {
res.setHeader("Content-Type","application/json"); res.setHeader("Content-Type", "application/json");
var comstr = attrComsArr.join("/"); var comstr = attrComsArr.join("/");
var names = req.params.name.split("--"); var names = req.params.name.split("--");
var p_name = ""; var p_name = "";
if(names.length > 1){ if (names.length > 1) {
p_name = names[0] p_name = names[0]
}else{ } else {
p_name = req.params.name p_name = req.params.name
} }
var str = execSync(`node ./get_project_config.js -name ${p_name} -attr ${comstr}`) var str = execSync(`node ./get_project_config.js -name ${p_name} -attr ${comstr}`)
var items = String(str).replace(/\n/g,"").split("|"); var items = String(str).replace(/\n/g, "").split("|");
let rs = {},index = 0; let rs = {},
for(let i of items){ index = 0;
rs[attrComs[index]] = i.replace(/\^/g," "); for (let i of items) {
rs[attrComs[index]] = i.replace(/\^/g, " ");
index++ index++
} }
res.send(rs); res.send(rs);
...@@ -141,52 +143,53 @@ admin.get('/get_project_attr/:name', function (req, res) { ...@@ -141,52 +143,53 @@ admin.get('/get_project_attr/:name', function (req, res) {
// 获取所有域名 // 获取所有域名
admin.get('/get_hosts', function (req, res) { admin.get('/get_hosts', function(req, res) {
res.setHeader("Content-Type","application/json"); res.setHeader("Content-Type", "application/json");
var str = execSync(`node ./get_project_config.js -type hosts`) var str = execSync(`node ./get_project_config.js -type hosts`)
var items = String(str); var items = String(str);
res.send(items); res.send(items);
}); });
// 根据类型获取系统名称 // 根据类型获取系统名称
admin.get('/get_systems_by_type', function (req, res) { admin.get('/get_systems_by_type', function(req, res) {
res.setHeader("Content-Type","application/json"); res.setHeader("Content-Type", "application/json");
var ui_str = execSync(`node ./get_project_config.js -type ui -attr name`) var ui_str = execSync(`node ./get_project_config.js -type ui -attr name`)
ui_str = String(ui_str) ui_str = String(ui_str)
.replace(/xyqb-ui/g,"").replace(/xjd-ui/,"xyqb-ui--xjd-ui") .replace(/xyqb-ui/g, "").replace(/xjd-ui/, "xyqb-ui--xjd-ui")
.replace(/new-paycenter-ui/g,"").replace(/paycenter-ui/,"paycenter-ui--new-paycenter-ui") .replace(/new-paycenter-ui/g, "").replace(/paycenter-ui/, "paycenter-ui--new-paycenter-ui")
.replace(/\s+/g,",").replace(/\n/g,"").slice(0, -1); .replace(/\s+/g, ",").replace(/\n/g, "").slice(0, -1);
var java_str = execSync(`node ./get_project_config.js -type java -attr name`) var java_str = execSync(`node ./get_project_config.js -type java -attr name`)
var node_str = execSync(`node ./get_project_config.js -type node -attr name`) var node_str = execSync(`node ./get_project_config.js -type node -attr name`)
var python_str = execSync(`node ./get_project_config.js -type python -attr name`) var python_str = execSync(`node ./get_project_config.js -type python -attr name`)
var server_str = `${String(java_str)} ${String(node_str)} ${String(python_str)}` var server_str = `${String(java_str)} ${String(node_str)} ${String(python_str)}`
server_str = server_str.replace(/\s+/g,",").replace(/\n/g,"").slice(0, -1);; server_str = server_str.replace(/\s+/g, ",").replace(/\n/g, "").slice(0, -1);;
res.send({ res.send({
frontend:ui_str, common: "db,redis,rabbitmq,zookeeper",
backend:server_str frontend: ui_str,
backend: server_str
}); });
}); });
// 给jenkins使用根据类型获取系统名称 // 给jenkins使用根据类型获取系统名称
admin.get('/get_systems_by_type_for_jenkins/:_type', function (req, res) { admin.get('/get_systems_by_type_for_jenkins/:_type', function(req, res) {
let str = "" let str = ""
if(req.params._type === "frontend"){ if (req.params._type === "frontend") {
var ui_str = execSync(`node ./get_project_config.js -type ui -attr name`) var ui_str = execSync(`node ./get_project_config.js -type ui -attr name`)
str = String(ui_str) str = String(ui_str)
.replace(/xyqb-ui/g,"").replace(/xjd-ui/,"xyqb-ui--xjd-ui") .replace(/xyqb-ui/g, "").replace(/xjd-ui/, "xyqb-ui--xjd-ui")
.replace(/new-paycenter-ui/g,"").replace(/paycenter-ui/,"paycenter-ui--new-paycenter-ui"); .replace(/new-paycenter-ui/g, "").replace(/paycenter-ui/, "paycenter-ui--new-paycenter-ui");
}else{ } else {
var java_str = execSync(`node ./get_project_config.js -type java -attr name`) var java_str = execSync(`node ./get_project_config.js -type java -attr name`)
var node_str = execSync(`node ./get_project_config.js -type node -attr name`) var node_str = execSync(`node ./get_project_config.js -type node -attr name`)
var python_str = execSync(`node ./get_project_config.js -type python -attr name`) var python_str = execSync(`node ./get_project_config.js -type python -attr name`)
str = `${String(java_str)} ${String(node_str)} ${String(python_str)}` str = `${String(java_str)} ${String(node_str)} ${String(python_str)}`
} }
str = str.replace(/\n/g,"").replace(/\s+/g,"\n"); str = str.replace(/\n/g, "").replace(/\s+/g, "\n");
res.send(str); res.send(str);
}); });
// 给jenkins使用根据类型获取系统名称 // 给jenkins使用根据类型获取系统名称
admin.get('/get_systems_by_type_for_temp', function (req, res) { admin.get('/get_systems_by_type_for_temp', function(req, res) {
var ui_str = execSync(`node ./get_project_config.js -type ui -attr name`) var ui_str = execSync(`node ./get_project_config.js -type ui -attr name`)
ui_str = String(ui_str).split(/\s+/) ui_str = String(ui_str).split(/\s+/)
var java_str = execSync(`node ./get_project_config.js -type java -attr name`) var java_str = execSync(`node ./get_project_config.js -type java -attr name`)
...@@ -196,19 +199,21 @@ admin.get('/get_systems_by_type_for_temp', function (req, res) { ...@@ -196,19 +199,21 @@ admin.get('/get_systems_by_type_for_temp', function (req, res) {
var python_str = execSync(`node ./get_project_config.js -type python -attr name`) var python_str = execSync(`node ./get_project_config.js -type python -attr name`)
python_str = String(python_str).split(/\s+/) python_str = String(python_str).split(/\s+/)
res.send({ res.send({
ui:ui_str, ui: ui_str,
java:java_str, java: java_str,
node:node_str, node: node_str,
python:python_str python: python_str
}); });
}); });
// 增加一个新的nginx映射 // 增加一个新的nginx映射
admin.post('/add_new_proxy', function (req, res) { admin.post('/add_new_proxy', function(req, res) {
let request = req.body; let request = req.body;
let new_namespace = request["namespace"],new_ip = request["ip"],new_ports=request["ports"]; let new_namespace = request["namespace"],
var str = String(execSync(`cat ../ngrok/docker_env_name.sh`)).replace(/\n/,""); new_ip = request["ip"],
new_ports = request["ports"];
var str = String(execSync(`cat ../ngrok/docker_env_name.sh`)).replace(/\n/, "");
let data = parseStr2Json(str); let data = parseStr2Json(str);
data[new_namespace] = { data[new_namespace] = {
name: new_namespace, name: new_namespace,
...@@ -218,77 +223,85 @@ admin.post('/add_new_proxy', function (req, res) { ...@@ -218,77 +223,85 @@ admin.post('/add_new_proxy', function (req, res) {
} }
let s = parseJson2Str(data) let s = parseJson2Str(data)
s = s.replace("\n","") s = s.replace("\n", "")
execSync(`echo "${s}" > ../ngrok/docker_env_name.sh`) execSync(`echo "${s}" > ../ngrok/docker_env_name.sh`)
cproc.exec("../ngrok/make_frp_ini_V2.sh"); cproc.exec("../ngrok/make_frp_ini_V2.sh");
res.send({msg:"执行完成"}); res.send({ msg: "执行完成" });
}); });
// 删除一个namespace映射 // 删除一个namespace映射
admin.post('/remove_proxy', function (req, res) { admin.post('/remove_proxy', function(req, res) {
let request = req.body; let request = req.body;
console.log(request); console.log(request);
let new_namespace = request["namespace"]; let new_namespace = request["namespace"];
var str = String(execSync(`cat ../ngrok/docker_env_name.sh`)).replace(/\n/,""); var str = String(execSync(`cat ../ngrok/docker_env_name.sh`)).replace(/\n/, "");
let data = parseStr2Json(str); let data = parseStr2Json(str);
delete data[new_namespace] delete data[new_namespace]
let s = parseJson2Str(data) let s = parseJson2Str(data)
s = s.replace("\n","") s = s.replace("\n", "")
execSync(`echo "${s}" > ../ngrok/docker_env_name.sh`) execSync(`echo "${s}" > ../ngrok/docker_env_name.sh`)
cproc.exec("../ngrok/make_frp_ini_V2.sh"); cproc.exec("../ngrok/make_frp_ini_V2.sh");
var last_str = String(execSync(`cat ../ngrok/docker_env_name.sh`)) var last_str = String(execSync(`cat ../ngrok/docker_env_name.sh`))
res.setHeader("Content-Type","application/json"); res.setHeader("Content-Type", "application/json");
res.send({ res.send({
"details": { "details": {
name_spaces:last_str name_spaces: last_str
}, },
"success": true "success": true
}); });
}); });
// 获取现有映射关系 // 获取现有映射关系
admin.get('/get_proxy', function (req, res) { admin.get('/get_proxy', function(req, res) {
res.setHeader("Content-Type","application/json"); res.setHeader("Content-Type", "application/json");
var str = execSync(`cat ../ngrok/docker_env_name.sh`) var str = execSync(`cat ../ngrok/docker_env_name.sh`)
res.send({namespace:String(str)}); res.send({ namespace: String(str) });
}); });
// 从mongo中获取配置
admin.get('/get_project_config_from_db', function(req, res) {
res.setHeader("Content-Type", "application/json");
async function test() {
let db = await mongodb.MongoClient.connect('mongodb://172.30.220.22:27017/qaHome', async function(err, db) {
let proconfigs = db.collection('proconfigs');
let projects = await proconfigs.find().toArray();
let re = [];
for (var index = 0; index < projects.length; index++) {
let temp = {
name: projects[index]["project_name"],
type: projects[index]["type"],
url: projects[index]["host_name"].replace(".xyqb.com", "").replace(".quantgroup.cn", ""),
www: projects[index]["host_name"],
git_path: projects[index]["git_path"],
config_path: projects[index]["config_path"],
log_name: projects[index]["log_path"],
command: projects[index]["start_command"],
command2: projects[index]["build_command"],
stop_command: projects[index]["stop_command"],
// command3: projects[index]["command3"],
// command4: projects[index]["command4"],
// command5: projects[index]["command5"],
port: projects[index]["port"],
desc: projects[index]["full_name"],
is_active: projects[index]["is_active"],
auth: projects[index]["auth"],
target_path: projects[index]["jar_path"]
}
// let project_name = projects[i]['project_name'];
// temp[projects[i]['project_name']] = projects[i];
// console.log(temp)
re.push(temp);
}
db.close();
res.send(re)
});
}
test();
});
app.use('/config_server', admin) app.use('/config_server', admin)
console.log("http://192.168.4.3:10088/config_server/get_node_command") console.log("http://192.168.4.3:10088/config_server/get_node_command")
app.listen(10088) app.listen(10088)
\ No newline at end of file
{
"name": "config_server",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"accepts": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz",
"integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=",
"requires": {
"mime-types": "2.1.17",
"negotiator": "0.6.1"
}
},
"amp": {
"version": "0.3.1",
"resolved": "http://registry.npm.taobao.org/amp/download/amp-0.3.1.tgz",
"integrity": "sha1-at+NWKdPNh6CwfqNOJwHnhOfxH0="
},
"amp-message": {
"version": "0.1.2",
"resolved": "http://registry.npm.taobao.org/amp-message/download/amp-message-0.1.2.tgz",
"integrity": "sha1-p48cmJlQh602GSpBKY5NtJ49/EU=",
"requires": {
"amp": "0.3.1"
}
},
"ansi-regex": {
"version": "2.1.1",
"resolved": "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz",
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
},
"ansi-styles": {
"version": "2.2.1",
"resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
},
"anymatch": {
"version": "1.3.2",
"resolved": "http://registry.npm.taobao.org/anymatch/download/anymatch-1.3.2.tgz",
"integrity": "sha1-VT3Lj5HjyImEXf26NMd3IbkLnXo=",
"requires": {
"micromatch": "2.3.11",
"normalize-path": "2.1.1"
}
},
"argparse": {
"version": "1.0.9",
"resolved": "http://registry.npm.taobao.org/argparse/download/argparse-1.0.9.tgz",
"integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
"requires": {
"sprintf-js": "1.0.3"
},
"dependencies": {
"sprintf-js": {
"version": "1.0.3",
"resolved": "http://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz",
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
}
}
},
"arr-diff": {
"version": "2.0.0",
"resolved": "http://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz",
"integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
"requires": {
"arr-flatten": "1.1.0"
}
},
"arr-flatten": {
"version": "1.1.0",
"resolved": "http://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz",
"integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE="
},
"array-flatten": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
},
"array-unique": {
"version": "0.2.1",
"resolved": "http://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz",
"integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM="
},
"async": {
"version": "2.6.0",
"resolved": "http://registry.npm.taobao.org/async/download/async-2.6.0.tgz",
"integrity": "sha1-YaKau2/MAm/qd+VtHG7FOnlZUfQ=",
"requires": {
"lodash": "4.17.4"
}
},
"async-each": {
"version": "1.0.1",
"resolved": "http://registry.npm.taobao.org/async-each/download/async-each-1.0.1.tgz",
"integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0="
},
"async-listener": {
"version": "0.6.8",
"resolved": "http://registry.npm.taobao.org/async-listener/download/async-listener-0.6.8.tgz",
"integrity": "sha1-01Vu+QXVrXe1LlKzfWix2KAkgfU=",
"requires": {
"semver": "5.4.1",
"shimmer": "1.1.0"
}
},
"balanced-match": {
"version": "1.0.0",
"resolved": "http://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz",
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
},
"binary-extensions": {
"version": "1.10.0",
"resolved": "http://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.10.0.tgz",
"integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA="
},
"blessed": {
"version": "0.1.81",
"resolved": "http://registry.npm.taobao.org/blessed/download/blessed-0.1.81.tgz",
"integrity": "sha1-+WLWh+wsNpVwrnGvhDJW5tDKESk="
},
"body-parser": {
"version": "1.18.2",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
"integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
"requires": {
"bytes": "3.0.0",
"content-type": "1.0.4",
"debug": "2.6.9",
"depd": "1.1.1",
"http-errors": "1.6.2",
"iconv-lite": "0.4.19",
"on-finished": "2.3.0",
"qs": "6.5.1",
"raw-body": "2.3.2",
"type-is": "1.6.15"
}
},
"brace-expansion": {
"version": "1.1.8",
"resolved": "http://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.8.tgz",
"integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
"requires": {
"balanced-match": "1.0.0",
"concat-map": "0.0.1"
}
},
"braces": {
"version": "1.8.5",
"resolved": "http://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz",
"integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
"requires": {
"expand-range": "1.8.2",
"preserve": "0.2.0",
"repeat-element": "1.1.2"
}
},
"bytes": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
"integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
},
"chalk": {
"version": "1.1.3",
"resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"requires": {
"ansi-styles": "2.2.1",
"escape-string-regexp": "1.0.5",
"has-ansi": "2.0.0",
"strip-ansi": "3.0.1",
"supports-color": "2.0.0"
}
},
"charm": {
"version": "0.1.2",
"resolved": "http://registry.npm.taobao.org/charm/download/charm-0.1.2.tgz",
"integrity": "sha1-BsIe7RobBq62dVPNxT4jJ0usIpY="
},
"child_process": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/child_process/-/child_process-1.0.2.tgz",
"integrity": "sha1-sffn/HPSXn/R1FWtyU4UODAYK1o="
},
"chokidar": {
"version": "1.7.0",
"resolved": "http://registry.npm.taobao.org/chokidar/download/chokidar-1.7.0.tgz",
"integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
"requires": {
"anymatch": "1.3.2",
"async-each": "1.0.1",
"glob-parent": "2.0.0",
"inherits": "2.0.3",
"is-binary-path": "1.0.1",
"is-glob": "2.0.1",
"path-is-absolute": "1.0.1",
"readdirp": "2.1.0"
}
},
"cli-table-redemption": {
"version": "1.0.1",
"resolved": "http://registry.npm.taobao.org/cli-table-redemption/download/cli-table-redemption-1.0.1.tgz",
"integrity": "sha1-A1nYw033SYACnXbf8HGgWhJ8T90=",
"requires": {
"chalk": "1.1.3"
}
},
"commander": {
"version": "2.11.0",
"resolved": "http://registry.npm.taobao.org/commander/download/commander-2.11.0.tgz",
"integrity": "sha1-FXFS/R56bI2YpbcVzzdt+SgARWM="
},
"concat-map": {
"version": "0.0.1",
"resolved": "http://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
"content-disposition": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
"integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ="
},
"content-type": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
},
"continuation-local-storage": {
"version": "3.2.0",
"resolved": "http://registry.npm.taobao.org/continuation-local-storage/download/continuation-local-storage-3.2.0.tgz",
"integrity": "sha1-4Z/Da1lwkKXU5KOy6j68XilpSiQ=",
"requires": {
"async-listener": "0.6.8",
"emitter-listener": "1.0.1"
}
},
"cookie": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
"integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
},
"cookie-signature": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
},
"core-util-is": {
"version": "1.0.2",
"resolved": "http://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"cron": {
"version": "1.3.0",
"resolved": "http://registry.npm.taobao.org/cron/download/cron-1.3.0.tgz",
"integrity": "sha1-fkWZaOr5ThpEW+eWzkAhZsI0ZZ0=",
"requires": {
"moment-timezone": "0.5.14"
}
},
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
},
"depd": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz",
"integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k="
},
"destroy": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
},
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"emitter-listener": {
"version": "1.0.1",
"resolved": "http://registry.npm.taobao.org/emitter-listener/download/emitter-listener-1.0.1.tgz",
"integrity": "sha1-skmepuWCMKUsJo1d8mHuzZ8Q/pc=",
"requires": {
"shimmer": "1.0.0"
},
"dependencies": {
"shimmer": {
"version": "1.0.0",
"resolved": "http://registry.npm.taobao.org/shimmer/download/shimmer-1.0.0.tgz",
"integrity": "sha1-ScLXHGeDYLgCvhiyeDgtHLuAXDk="
}
}
},
"encodeurl": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz",
"integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA="
},
"escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
},
"escape-regexp": {
"version": "0.0.1",
"resolved": "http://registry.npm.taobao.org/escape-regexp/download/escape-regexp-0.0.1.tgz",
"integrity": "sha1-9EvaEtRbvfnLf4Yu5+SCez3TIlQ="
},
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "http://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
},
"etag": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
"integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
},
"eventemitter2": {
"version": "1.0.5",
"resolved": "http://registry.npm.taobao.org/eventemitter2/download/eventemitter2-1.0.5.tgz",
"integrity": "sha1-+YNhBRexc3wLncZDvsqTiTwE3xg="
},
"expand-brackets": {
"version": "0.1.5",
"resolved": "http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz",
"integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
"requires": {
"is-posix-bracket": "0.1.1"
}
},
"expand-range": {
"version": "1.8.2",
"resolved": "http://registry.npm.taobao.org/expand-range/download/expand-range-1.8.2.tgz",
"integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
"requires": {
"fill-range": "2.2.3"
}
},
"express": {
"version": "4.16.2",
"resolved": "http://registry.npm.taobao.org/express/download/express-4.16.2.tgz",
"integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=",
"requires": {
"accepts": "1.3.4",
"array-flatten": "1.1.1",
"body-parser": "1.18.2",
"content-disposition": "0.5.2",
"content-type": "1.0.4",
"cookie": "0.3.1",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "1.1.1",
"encodeurl": "1.0.1",
"escape-html": "1.0.3",
"etag": "1.8.1",
"finalhandler": "1.1.0",
"fresh": "0.5.2",
"merge-descriptors": "1.0.1",
"methods": "1.1.2",
"on-finished": "2.3.0",
"parseurl": "1.3.2",
"path-to-regexp": "0.1.7",
"proxy-addr": "2.0.2",
"qs": "6.5.1",
"range-parser": "1.2.0",
"safe-buffer": "5.1.1",
"send": "0.16.1",
"serve-static": "1.13.1",
"setprototypeof": "1.1.0",
"statuses": "1.3.1",
"type-is": "1.6.15",
"utils-merge": "1.0.1",
"vary": "1.1.2"
}
},
"extend": {
"version": "3.0.1",
"resolved": "http://registry.npm.taobao.org/extend/download/extend-3.0.1.tgz",
"integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ="
},
"extglob": {
"version": "0.3.2",
"resolved": "http://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz",
"integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
"requires": {
"is-extglob": "1.0.0"
}
},
"fclone": {
"version": "1.0.11",
"resolved": "http://registry.npm.taobao.org/fclone/download/fclone-1.0.11.tgz",
"integrity": "sha1-EOhdo4v+p/xZk0HClu4ddyZu5kA="
},
"filename-regex": {
"version": "2.0.1",
"resolved": "http://registry.npm.taobao.org/filename-regex/download/filename-regex-2.0.1.tgz",
"integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY="
},
"fill-range": {
"version": "2.2.3",
"resolved": "http://registry.npm.taobao.org/fill-range/download/fill-range-2.2.3.tgz",
"integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
"requires": {
"is-number": "2.1.0",
"isobject": "2.1.0",
"randomatic": "1.1.7",
"repeat-element": "1.1.2",
"repeat-string": "1.6.1"
}
},
"finalhandler": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz",
"integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=",
"requires": {
"debug": "2.6.9",
"encodeurl": "1.0.1",
"escape-html": "1.0.3",
"on-finished": "2.3.0",
"parseurl": "1.3.2",
"statuses": "1.3.1",
"unpipe": "1.0.0"
}
},
"for-in": {
"version": "1.0.2",
"resolved": "http://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz",
"integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
},
"for-own": {
"version": "0.1.5",
"resolved": "http://registry.npm.taobao.org/for-own/download/for-own-0.1.5.tgz",
"integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
"requires": {
"for-in": "1.0.2"
}
},
"forwarded": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
"integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
},
"fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
},
"fs.realpath": {
"version": "1.0.0",
"resolved": "http://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
"gkt": {
"version": "https://tgz.pm2.io/gkt-1.0.0.tgz",
"integrity": "sha1-QFUCsAfzGcP0cXXER0UnMA8qta0=",
"optional": true
},
"glob": {
"version": "7.1.2",
"resolved": "http://registry.npm.taobao.org/glob/download/glob-7.1.2.tgz",
"integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=",
"requires": {
"fs.realpath": "1.0.0",
"inflight": "1.0.6",
"inherits": "2.0.3",
"minimatch": "3.0.4",
"once": "1.4.0",
"path-is-absolute": "1.0.1"
}
},
"glob-base": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/glob-base/download/glob-base-0.3.0.tgz",
"integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
"requires": {
"glob-parent": "2.0.0",
"is-glob": "2.0.1"
}
},
"glob-parent": {
"version": "2.0.0",
"resolved": "http://registry.npm.taobao.org/glob-parent/download/glob-parent-2.0.0.tgz",
"integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
"requires": {
"is-glob": "2.0.1"
}
},
"graceful-fs": {
"version": "4.1.11",
"resolved": "http://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
},
"has-ansi": {
"version": "2.0.0",
"resolved": "http://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz",
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
"requires": {
"ansi-regex": "2.1.1"
}
},
"http-errors": {
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
"integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
"requires": {
"depd": "1.1.1",
"inherits": "2.0.3",
"setprototypeof": "1.0.3",
"statuses": "1.3.1"
},
"dependencies": {
"setprototypeof": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
"integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ="
}
}
},
"iconv-lite": {
"version": "0.4.19",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
"integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
},
"inflight": {
"version": "1.0.6",
"resolved": "http://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"requires": {
"once": "1.4.0",
"wrappy": "1.0.2"
}
},
"inherits": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
"interpret": {
"version": "1.0.4",
"resolved": "http://registry.npm.taobao.org/interpret/download/interpret-1.0.4.tgz",
"integrity": "sha1-ggzdWIuGj/sZGoCVBtbJyPISsbA="
},
"ipaddr.js": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz",
"integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A="
},
"is": {
"version": "3.2.1",
"resolved": "http://registry.npm.taobao.org/is/download/is-3.2.1.tgz",
"integrity": "sha1-0Kwq1V63sL7JJqUmb2xmKqqD3KU="
},
"is-binary-path": {
"version": "1.0.1",
"resolved": "http://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz",
"integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
"requires": {
"binary-extensions": "1.10.0"
}
},
"is-buffer": {
"version": "1.1.6",
"resolved": "http://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz",
"integrity": "sha1-76ouqdqg16suoTqXsritUf776L4="
},
"is-dotfile": {
"version": "1.0.3",
"resolved": "http://registry.npm.taobao.org/is-dotfile/download/is-dotfile-1.0.3.tgz",
"integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE="
},
"is-equal-shallow": {
"version": "0.1.3",
"resolved": "http://registry.npm.taobao.org/is-equal-shallow/download/is-equal-shallow-0.1.3.tgz",
"integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
"requires": {
"is-primitive": "2.0.0"
}
},
"is-extendable": {
"version": "0.1.1",
"resolved": "http://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz",
"integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
},
"is-extglob": {
"version": "1.0.0",
"resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz",
"integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
},
"is-glob": {
"version": "2.0.1",
"resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz",
"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
"requires": {
"is-extglob": "1.0.0"
}
},
"is-number": {
"version": "2.1.0",
"resolved": "http://registry.npm.taobao.org/is-number/download/is-number-2.1.0.tgz",
"integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
"requires": {
"kind-of": "3.2.2"
}
},
"is-posix-bracket": {
"version": "0.1.1",
"resolved": "http://registry.npm.taobao.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz",
"integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q="
},
"is-primitive": {
"version": "2.0.0",
"resolved": "http://registry.npm.taobao.org/is-primitive/download/is-primitive-2.0.0.tgz",
"integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU="
},
"isarray": {
"version": "1.0.0",
"resolved": "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"isobject": {
"version": "2.1.0",
"resolved": "http://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz",
"integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
"requires": {
"isarray": "1.0.0"
}
},
"json-stringify-safe": {
"version": "5.0.1",
"resolved": "http://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz",
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
},
"kind-of": {
"version": "3.2.2",
"resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"requires": {
"is-buffer": "1.1.6"
}
},
"lazy": {
"version": "1.0.11",
"resolved": "http://registry.npm.taobao.org/lazy/download/lazy-1.0.11.tgz",
"integrity": "sha1-2qBoIGKCVCwIgojpdcKXwa53tpA="
},
"lodash": {
"version": "4.17.4",
"resolved": "http://registry.npm.taobao.org/lodash/download/lodash-4.17.4.tgz",
"integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4="
},
"lodash.findindex": {
"version": "4.6.0",
"resolved": "http://registry.npm.taobao.org/lodash.findindex/download/lodash.findindex-4.6.0.tgz",
"integrity": "sha1-oyRd7mH7m24GJLU1ElYku2nBEQY="
},
"lodash.isequal": {
"version": "4.5.0",
"resolved": "http://registry.npm.taobao.org/lodash.isequal/download/lodash.isequal-4.5.0.tgz",
"integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA="
},
"lodash.merge": {
"version": "4.6.0",
"resolved": "http://registry.npm.taobao.org/lodash.merge/download/lodash.merge-4.6.0.tgz",
"integrity": "sha1-aYhLoUSsM/5plzemCG3v+t0PicU="
},
"media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
},
"merge-descriptors": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
"integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
},
"methods": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
},
"micromatch": {
"version": "2.3.11",
"resolved": "http://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz",
"integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
"requires": {
"arr-diff": "2.0.0",
"array-unique": "0.2.1",
"braces": "1.8.5",
"expand-brackets": "0.1.5",
"extglob": "0.3.2",
"filename-regex": "2.0.1",
"is-extglob": "1.0.0",
"is-glob": "2.0.1",
"kind-of": "3.2.2",
"normalize-path": "2.1.1",
"object.omit": "2.0.1",
"parse-glob": "3.0.4",
"regex-cache": "0.4.4"
}
},
"mime": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
"integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
},
"mime-db": {
"version": "1.30.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
"integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE="
},
"mime-types": {
"version": "2.1.17",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
"integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
"requires": {
"mime-db": "1.30.0"
}
},
"minimatch": {
"version": "3.0.4",
"resolved": "http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz",
"integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
"requires": {
"brace-expansion": "1.1.8"
}
},
"minimist": {
"version": "0.0.8",
"resolved": "http://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
},
"mkdirp": {
"version": "0.5.1",
"resolved": "http://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz",
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"requires": {
"minimist": "0.0.8"
}
},
"moment": {
"version": "2.19.1",
"resolved": "http://registry.npm.taobao.org/moment/download/moment-2.19.1.tgz",
"integrity": "sha1-VtoaLRy/AdOLfhr8McELz6GSkWc="
},
"moment-timezone": {
"version": "0.5.14",
"resolved": "http://registry.npm.taobao.org/moment-timezone/download/moment-timezone-0.5.14.tgz",
"integrity": "sha1-TrOP+VOLgBCLpGekWPPtQmjM/LE=",
"requires": {
"moment": "2.19.1"
}
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"mute-stream": {
"version": "0.0.7",
"resolved": "http://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.7.tgz",
"integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
},
"needle": {
"version": "1.6.0",
"resolved": "http://registry.npm.taobao.org/needle/download/needle-1.6.0.tgz",
"integrity": "sha1-9SpYWJchIWGOAC+OY4TK2sItYk8=",
"requires": {
"debug": "2.6.9",
"iconv-lite": "0.4.19"
}
},
"negotiator": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
"integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
},
"normalize-path": {
"version": "2.1.1",
"resolved": "http://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz",
"integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
"requires": {
"remove-trailing-separator": "1.1.0"
}
},
"nssocket": {
"version": "0.6.0",
"resolved": "http://registry.npm.taobao.org/nssocket/download/nssocket-0.6.0.tgz",
"integrity": "sha1-Wflvb/MhVm8zxw99vu7N/cBxVPo=",
"requires": {
"eventemitter2": "0.4.14",
"lazy": "1.0.11"
},
"dependencies": {
"eventemitter2": {
"version": "0.4.14",
"resolved": "http://registry.npm.taobao.org/eventemitter2/download/eventemitter2-0.4.14.tgz",
"integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas="
}
}
},
"object.omit": {
"version": "2.0.1",
"resolved": "http://registry.npm.taobao.org/object.omit/download/object.omit-2.0.1.tgz",
"integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
"requires": {
"for-own": "0.1.5",
"is-extendable": "0.1.1"
}
},
"on-finished": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
"integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
"requires": {
"ee-first": "1.1.1"
}
},
"once": {
"version": "1.4.0",
"resolved": "http://registry.npm.taobao.org/once/download/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"requires": {
"wrappy": "1.0.2"
}
},
"parse-glob": {
"version": "3.0.4",
"resolved": "http://registry.npm.taobao.org/parse-glob/download/parse-glob-3.0.4.tgz",
"integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
"requires": {
"glob-base": "0.3.0",
"is-dotfile": "1.0.3",
"is-extglob": "1.0.0",
"is-glob": "2.0.1"
}
},
"parseurl": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
"integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
},
"path-is-absolute": {
"version": "1.0.1",
"resolved": "http://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz",
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
},
"path-parse": {
"version": "1.0.5",
"resolved": "http://registry.npm.taobao.org/path-parse/download/path-parse-1.0.5.tgz",
"integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME="
},
"path-to-regexp": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
},
"pidusage": {
"version": "1.2.0",
"resolved": "http://registry.npm.taobao.org/pidusage/download/pidusage-1.2.0.tgz",
"integrity": "sha1-Ze6WrOTgikzT+SQJlshbNnFx7pI="
},
"pm2": {
"version": "2.7.2",
"resolved": "http://registry.npm.taobao.org/pm2/download/pm2-2.7.2.tgz",
"integrity": "sha1-3kIe4UDi8YZlnaKZqJAP8sEwi6A=",
"requires": {
"async": "2.6.0",
"blessed": "0.1.81",
"chalk": "1.1.3",
"chokidar": "1.7.0",
"cli-table-redemption": "1.0.1",
"commander": "2.11.0",
"cron": "1.3.0",
"debug": "3.1.0",
"eventemitter2": "1.0.5",
"fclone": "1.0.11",
"gkt": "https://tgz.pm2.io/gkt-1.0.0.tgz",
"mkdirp": "0.5.1",
"moment": "2.19.1",
"needle": "1.6.0",
"nssocket": "0.6.0",
"pidusage": "1.2.0",
"pm2-axon": "3.1.0",
"pm2-axon-rpc": "0.5.0",
"pm2-deploy": "0.3.8",
"pm2-multimeter": "0.1.2",
"pmx": "1.5.4",
"promptly": "2.2.0",
"semver": "5.4.1",
"shelljs": "0.7.8",
"source-map-support": "0.4.18",
"sprintf-js": "1.1.1",
"vizion": "0.2.13",
"yamljs": "0.3.0"
},
"dependencies": {
"debug": {
"version": "3.1.0",
"resolved": "http://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz",
"integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
"requires": {
"ms": "2.0.0"
}
}
}
},
"pm2-axon": {
"version": "3.1.0",
"resolved": "http://registry.npm.taobao.org/pm2-axon/download/pm2-axon-3.1.0.tgz",
"integrity": "sha1-G0Un8zheIDrcGlsEiLtS8DInMdo=",
"requires": {
"amp": "0.3.1",
"amp-message": "0.1.2",
"debug": "3.1.0",
"escape-regexp": "0.0.1"
},
"dependencies": {
"debug": {
"version": "3.1.0",
"resolved": "http://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz",
"integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
"requires": {
"ms": "2.0.0"
}
}
}
},
"pm2-axon-rpc": {
"version": "0.5.0",
"resolved": "http://registry.npm.taobao.org/pm2-axon-rpc/download/pm2-axon-rpc-0.5.0.tgz",
"integrity": "sha1-rQjWon9YDVx75Ne/nd3/OY+GiZQ=",
"requires": {
"debug": "3.1.0",
"fclone": "1.0.11"
},
"dependencies": {
"debug": {
"version": "3.1.0",
"resolved": "http://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz",
"integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
"requires": {
"ms": "2.0.0"
}
}
}
},
"pm2-deploy": {
"version": "0.3.8",
"resolved": "http://registry.npm.taobao.org/pm2-deploy/download/pm2-deploy-0.3.8.tgz",
"integrity": "sha1-Iz7sAQO7oHALng4Or7bl0AalWwQ=",
"requires": {
"async": "1.5.2",
"tv4": "1.3.0"
},
"dependencies": {
"async": {
"version": "1.5.2",
"resolved": "http://registry.npm.taobao.org/async/download/async-1.5.2.tgz",
"integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
}
}
},
"pm2-multimeter": {
"version": "0.1.2",
"resolved": "http://registry.npm.taobao.org/pm2-multimeter/download/pm2-multimeter-0.1.2.tgz",
"integrity": "sha1-Gh5VFT1BoFU0zqI8/oYKuqDrSs4=",
"requires": {
"charm": "0.1.2"
}
},
"pmx": {
"version": "1.5.4",
"resolved": "http://registry.npm.taobao.org/pmx/download/pmx-1.5.4.tgz",
"integrity": "sha1-J9ccVOcntRhkhVRbnHDCHqvIHA8=",
"requires": {
"debug": "3.1.0",
"json-stringify-safe": "5.0.1",
"vxx": "1.2.2"
},
"dependencies": {
"debug": {
"version": "3.1.0",
"resolved": "http://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz",
"integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
"requires": {
"ms": "2.0.0"
}
}
}
},
"preserve": {
"version": "0.2.0",
"resolved": "http://registry.npm.taobao.org/preserve/download/preserve-0.2.0.tgz",
"integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks="
},
"process-nextick-args": {
"version": "1.0.7",
"resolved": "http://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-1.0.7.tgz",
"integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
},
"promptly": {
"version": "2.2.0",
"resolved": "http://registry.npm.taobao.org/promptly/download/promptly-2.2.0.tgz",
"integrity": "sha1-KhP6BjaIoqWYOxYf/wEIoH0m/HQ=",
"requires": {
"read": "1.0.7"
}
},
"proxy-addr": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz",
"integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=",
"requires": {
"forwarded": "0.1.2",
"ipaddr.js": "1.5.2"
}
},
"qs": {
"version": "6.5.1",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
"integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A=="
},
"randomatic": {
"version": "1.1.7",
"resolved": "http://registry.npm.taobao.org/randomatic/download/randomatic-1.1.7.tgz",
"integrity": "sha1-x6vpzIuHwLqodrGf3oP9RkeX44w=",
"requires": {
"is-number": "3.0.0",
"kind-of": "4.0.0"
},
"dependencies": {
"is-number": {
"version": "3.0.0",
"resolved": "http://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz",
"integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
"requires": {
"kind-of": "3.2.2"
},
"dependencies": {
"kind-of": {
"version": "3.2.2",
"resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"requires": {
"is-buffer": "1.1.6"
}
}
}
},
"kind-of": {
"version": "4.0.0",
"resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz",
"integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
"requires": {
"is-buffer": "1.1.6"
}
}
}
},
"range-parser": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
"integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
},
"raw-body": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz",
"integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=",
"requires": {
"bytes": "3.0.0",
"http-errors": "1.6.2",
"iconv-lite": "0.4.19",
"unpipe": "1.0.0"
}
},
"read": {
"version": "1.0.7",
"resolved": "http://registry.npm.taobao.org/read/download/read-1.0.7.tgz",
"integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=",
"requires": {
"mute-stream": "0.0.7"
}
},
"readable-stream": {
"version": "2.3.3",
"resolved": "http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.3.tgz",
"integrity": "sha1-No8lEtefnUb9/HE0mueHi7weuVw=",
"requires": {
"core-util-is": "1.0.2",
"inherits": "2.0.3",
"isarray": "1.0.0",
"process-nextick-args": "1.0.7",
"safe-buffer": "5.1.1",
"string_decoder": "1.0.3",
"util-deprecate": "1.0.2"
}
},
"readdirp": {
"version": "2.1.0",
"resolved": "http://registry.npm.taobao.org/readdirp/download/readdirp-2.1.0.tgz",
"integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=",
"requires": {
"graceful-fs": "4.1.11",
"minimatch": "3.0.4",
"readable-stream": "2.3.3",
"set-immediate-shim": "1.0.1"
}
},
"rechoir": {
"version": "0.6.2",
"resolved": "http://registry.npm.taobao.org/rechoir/download/rechoir-0.6.2.tgz",
"integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
"requires": {
"resolve": "1.5.0"
}
},
"regex-cache": {
"version": "0.4.4",
"resolved": "http://registry.npm.taobao.org/regex-cache/download/regex-cache-0.4.4.tgz",
"integrity": "sha1-db3FiioUls7EihKDW8VMjVYjNt0=",
"requires": {
"is-equal-shallow": "0.1.3"
}
},
"remove-trailing-separator": {
"version": "1.1.0",
"resolved": "http://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz",
"integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
},
"repeat-element": {
"version": "1.1.2",
"resolved": "http://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.2.tgz",
"integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo="
},
"repeat-string": {
"version": "1.6.1",
"resolved": "http://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz",
"integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
},
"resolve": {
"version": "1.5.0",
"resolved": "http://registry.npm.taobao.org/resolve/download/resolve-1.5.0.tgz",
"integrity": "sha1-HwmsznlsmnYlefMbLBzEw83fnzY=",
"requires": {
"path-parse": "1.0.5"
}
},
"safe-buffer": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
"integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
},
"semver": {
"version": "5.4.1",
"resolved": "http://registry.npm.taobao.org/semver/download/semver-5.4.1.tgz",
"integrity": "sha1-4FnAnYVx8FQII3M0M1BdOi8AsY4="
},
"send": {
"version": "0.16.1",
"resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz",
"integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==",
"requires": {
"debug": "2.6.9",
"depd": "1.1.1",
"destroy": "1.0.4",
"encodeurl": "1.0.1",
"escape-html": "1.0.3",
"etag": "1.8.1",
"fresh": "0.5.2",
"http-errors": "1.6.2",
"mime": "1.4.1",
"ms": "2.0.0",
"on-finished": "2.3.0",
"range-parser": "1.2.0",
"statuses": "1.3.1"
}
},
"serve-static": {
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz",
"integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==",
"requires": {
"encodeurl": "1.0.1",
"escape-html": "1.0.3",
"parseurl": "1.3.2",
"send": "0.16.1"
}
},
"set-immediate-shim": {
"version": "1.0.1",
"resolved": "http://registry.npm.taobao.org/set-immediate-shim/download/set-immediate-shim-1.0.1.tgz",
"integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E="
},
"setprototypeof": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
"integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
},
"shelljs": {
"version": "0.7.8",
"resolved": "http://registry.npm.taobao.org/shelljs/download/shelljs-0.7.8.tgz",
"integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=",
"requires": {
"glob": "7.1.2",
"interpret": "1.0.4",
"rechoir": "0.6.2"
}
},
"shimmer": {
"version": "1.1.0",
"resolved": "http://registry.npm.taobao.org/shimmer/download/shimmer-1.1.0.tgz",
"integrity": "sha1-l9c3cTf/u6tCVSLkKf4KqJpIizU="
},
"source-map": {
"version": "0.5.7",
"resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
},
"source-map-support": {
"version": "0.4.18",
"resolved": "http://registry.npm.taobao.org/source-map-support/download/source-map-support-0.4.18.tgz",
"integrity": "sha1-Aoam3ovkJkEzhZTpfM6nXwosWF8=",
"requires": {
"source-map": "0.5.7"
}
},
"sprintf-js": {
"version": "1.1.1",
"resolved": "http://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.1.1.tgz",
"integrity": "sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw="
},
"statuses": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
"integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4="
},
"string_decoder": {
"version": "1.0.3",
"resolved": "http://registry.npm.taobao.org/string_decoder/download/string_decoder-1.0.3.tgz",
"integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=",
"requires": {
"safe-buffer": "5.1.1"
}
},
"strip-ansi": {
"version": "3.0.1",
"resolved": "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"requires": {
"ansi-regex": "2.1.1"
}
},
"supports-color": {
"version": "2.0.0",
"resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
},
"tv4": {
"version": "1.3.0",
"resolved": "http://registry.npm.taobao.org/tv4/download/tv4-1.3.0.tgz",
"integrity": "sha1-0CDIRvrdUMhVq7JeuuzGj8EPeWM="
},
"type-is": {
"version": "1.6.15",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz",
"integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=",
"requires": {
"media-typer": "0.3.0",
"mime-types": "2.1.17"
}
},
"unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
},
"util-deprecate": {
"version": "1.0.2",
"resolved": "http://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
"utils-merge": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
},
"uuid": {
"version": "3.1.0",
"resolved": "http://registry.npm.taobao.org/uuid/download/uuid-3.1.0.tgz",
"integrity": "sha1-PdPT55Crwk17DToDT/q6vijrvAQ="
},
"vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
},
"vizion": {
"version": "0.2.13",
"resolved": "http://registry.npm.taobao.org/vizion/download/vizion-0.2.13.tgz",
"integrity": "sha1-ExTN7is0EW+fWxJIU2+V2/zW718=",
"requires": {
"async": "1.5.2"
},
"dependencies": {
"async": {
"version": "1.5.2",
"resolved": "http://registry.npm.taobao.org/async/download/async-1.5.2.tgz",
"integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
}
}
},
"vxx": {
"version": "1.2.2",
"resolved": "http://registry.npm.taobao.org/vxx/download/vxx-1.2.2.tgz",
"integrity": "sha1-dB+1HG8R0zg9pvm5IBil17qAdhE=",
"requires": {
"continuation-local-storage": "3.2.0",
"debug": "2.6.9",
"extend": "3.0.1",
"is": "3.2.1",
"lodash.findindex": "4.6.0",
"lodash.isequal": "4.5.0",
"lodash.merge": "4.6.0",
"methods": "1.1.2",
"semver": "5.4.1",
"shimmer": "1.1.0",
"uuid": "3.1.0"
}
},
"wrappy": {
"version": "1.0.2",
"resolved": "http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"yamljs": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/yamljs/download/yamljs-0.3.0.tgz",
"integrity": "sha1-3AYL8mdEezn3ME6bK/votafdsDs=",
"requires": {
"argparse": "1.0.9",
"glob": "7.1.2"
}
}
}
}
...@@ -12,6 +12,8 @@ ...@@ -12,6 +12,8 @@
"body-parser": "^1.18.2", "body-parser": "^1.18.2",
"child_process": "^1.0.2", "child_process": "^1.0.2",
"express": "^4.16.2", "express": "^4.16.2",
"request": "^2.83.0",
"mongodb": "^2.2.33",
"pm2": "^2.7.2" "pm2": "^2.7.2"
} }
} }
server {
listen 80 default;
server_name _;
underscores_in_headers on;
proxy_set_header Host $host;
proxy_set_header QT_TOKEN $http_QT_TOKEN;
set $ip ;
location / {
if
proxy_pass http://;
}
}
server {
listen 443 ssl;
server_name _;
proxy_set_header QT_TOKEN $http_QT_TOKEN;
ssl_certificate /home/q-gp/ssl/certificate.crt;
ssl_certificate_key /home/q-gp/ssl/private.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
proxy_set_header Host $host;
set $ip ;
location / {
if
proxy_pass http://;
}
}
server {
listen 80 default;
server_name _;
underscores_in_headers on;
proxy_set_header Host $host;
proxy_set_header QT_TOKEN $http_QT_TOKEN;
set $ip ;
location / {
if
proxy_pass http://;
}
}
server {
listen 443 ssl;
server_name _;
proxy_set_header QT_TOKEN $http_QT_TOKEN;
ssl_certificate /home/q-gp/ssl/certificate.crt;
ssl_certificate_key /home/q-gp/ssl/private.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
proxy_set_header Host $host;
set $ip ;
location / {
if
proxy_pass http://;
}
}
dongmeifeng|192.168.4.78|32093|32093 tower|192.168.4.78|30886|30084 zhanghong|192.168.4.77|31826|32324 wangzhen|192.168.4.77|31809|30100 zhangbo|192.168.4.77|31091|32056 wangfei|192.168.4.77|32389|31374 renmingxing|192.168.4.78|30169|32509 tianyawei|192.168.4.77|32718|32701 hemengying|192.168.4.32|30067|30660 songruili|192.168.4.18|32355|30265 yiwei|192.168.4.77|30352|30286 lishuang|192.168.4.77|30011|31185 chenyadong|192.168.4.77|30384|32523 chenxingchun|192.168.4.33|30445|30583 yanxiaoyu|192.168.4.18|32116|30133 debug2|192.168.4.32|32224|32522 dongmeifeng|192.168.4.78|32093|32093 tower|192.168.4.78|30886|30084 zhangbo|192.168.4.77|31091|32056 wangfei|192.168.4.77|32389|31374 renmingxing|192.168.4.78|30169|32509 songruili|192.168.4.18|32355|30265 yiwei|192.168.4.77|30352|30286 lishuang|192.168.4.77|30011|31185 chenyadong|192.168.4.77|30384|32523 chenxingchun|192.168.4.33|30445|30583 yanxiaoyu|192.168.4.18|32116|30133 cloner|192.168.6.9|32566|32560 c2|192.168.6.8|30492|31481 withdb|192.168.6.9|30321|30896 base|192.168.6.9|31440|32685 dbtest|192.168.6.9|31669|31647 ggggg|192.168.6.9|30451|32069 |192.168.6.9||
...@@ -142,7 +142,7 @@ createNginxHttpAndSSLConf mock mock 172.30.220.22 8080 8080 $nginxname/base.conf ...@@ -142,7 +142,7 @@ createNginxHttpAndSSLConf mock mock 172.30.220.22 8080 8080 $nginxname/base.conf
createNginxHttpAndSSLConf atm atm 172.30.220.43 80 80 $nginxname/base.conf createNginxHttpAndSSLConf atm atm 172.30.220.43 80 80 $nginxname/base.conf
createNginxHttpAndSSLConf mockapi mockapi 172.30.220.22 80 80 $nginxname/base.conf createNginxHttpAndSSLConf mockapi mockapi 172.30.220.22 80 80 $nginxname/base.conf
createNginxHttpAndSSLConf acs acs 172.30.220.43 8585 8585 $nginxname/base.conf createNginxHttpAndSSLConf acs acs 172.30.220.43 8585 8585 $nginxname/base.conf
createNginxHttpAndSSLConf a a 172.30.220.22 80 80 $nginxname/base.conf
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment