XyyF / mongoDB_test

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

环境依赖

node

去官网下载安装node7.9+版本(8.x版也可以),windows版会附带npm。这是一个包管理工具,我们会用它来安装下面提到的其它依赖工具

yarn

npm install yarn -g

没有npm的话可以直接去这里下载yarn安装包

MongoDB

  • 安装mongodbd
  • 修改项目根目录下的install_mongo_service.bat第一行的路径为您自己的mongodb安装路径,保存后右键“以管理员身份运行”
  • 以上操作在windows中安装了一个服务MONGODB,会在开机时自启动

vue-devtools

可以在控制台查看vue实例的状态的调试工具。 安装地址 如果控制台不显示,需要检查以下配置

  • 网页使用vue.js而不是vue.min.js,或在刚初始化好后设置Vue.config.devtool=true
  • 关闭控制台再重新打开

常用命令

1.开发环境初始化项目

yarn
  • 在根目录下新建server_config.js文件。文件内容如下:
module.exports = {
   'env': 'local', // 取值为production、develop或local
};

2.开发环境启动项目

node server/app.js
node client/resource_server/resource_server.js

只做后台开发的同学可以使用以下命令

yarn run build-local
node server/app.js
node client/resource_server/resource_server.js --nowebpack

3.发布到测试环境

git push到develop分支,会自动进行构建与部署


4.发布到正式环境

git push到master分支,并登录阿里云持续构建系统,找到正式环境工作流,点运行工作流,点三角按钮


5.线上环境启动命令

./update.sh

项目初始化

1.修改全局配置

  • 修改common/project_config.js中的projectName
  • 修改server/config/global.js中的port
  • 修改package.json中的repository.url

2.服务器端克隆代码

在/nginxres目录下用git clone检出代码 进入代码目录,执行以下命令赋予根目录的脚本执行权限

chmod 777 *.sh

在根目录下新建server_config.js文件。文件内容如下:

module.exports = {
   'env': 'production', // 取值为production、develop或local
};

3.配置服务器端数据库

DMS中以工程名创建一个用户库,并在其中创建一个node_user用户,并勾上readreadWrite权限。 将该用户的密码记录在server_config.js文件中。增加一行如下:

    'mongo_password': 'xxx',

4.配置nginx端口

  1. 找到nginx配置文件,一般路径为:/usr/local/nginx/conf/nginx.conf

  2. 编辑,只需要编辑或新增 server{...} 内的信息,具体配置参考下方的nginx配置说明

  3. 编辑完成后,需要重启nginx服务使其配置生效:

3.1. 使用 ps -ef | grep nginx 命令找到 nginx: master process进程,记录进程号,如:15753
3.2. 使用平滑重启方式重启nginx进程:kill -HUP 15753(nginx主进程号,3.1已记录)

5.创建服务器端日志文件夹

/log目录下以工程名创建一个文件夹。如果有测试环境,还要以工程名_dev创建一个文件夹

6.配置域名解析

  • 登录阿里云控制台,找到云解析DNS。点huisaas.cn
  • 配置一个A类记录,主机记录填工程名.prod,记录值填服务器ip。
  • 如果要配置测试环境的话还需要以工程名.dev为主机记录创建一条解析规则
  • 注意服务器ip一定要和@记录的地址一致,否则打开该域名时会提示未备案。
  • 实在不行可以换用meetin.co的子域名,需要去修改server/config/global.jsserver/config/global_server_dev.js中的configure.host。而且meetin.co的域名解析在dnspod
  • 把域名和端口使用情况记录在Tower

7.配置七牛

  • 登录七牛
  • 对象存储中创建一个存储空间
  • 存储空间镜像存储中设置镜像源,如http://example.prod.huisaas.cn
  • 将存储空间的域名填入build/webpack.configs.js文件的prodCdnDomain属性处
  • 若有七牛上传模块,还要把access和key(个人面板->密钥管理)填入server_config.js文件。增加两行如下:
      "qiniu_ACCESS_KEY": "xxx",
      "qiniu_SECRET_KEY": "xxx",
    
    把上传用的bucket容器名和路径填入server/routes/upload/qiniu_upload.js
    根据容器所在区域和上传域名的对应表配置qiniu_upload.js中的QINIU_UPLOAD_URL

8.配置容联云通讯

  • 登录容联云通讯
  • 将配置信息填入server/routes/utils/sms_send_utils

9.配置持续构建

  • 登录持续构建平台Kelude
  • 工作流中以真·node持续构建模板创建一个新工作流
  • 设置代码仓库监听分支
  • 点击上方区域流程图中的1部署,将部署路径部署命令中的edu_saas修改为自己的工程名。
  • 注意若是要配置测试环境的发布流程,则应在路径中加上_dev。还要把2构建>编译/测试>运行命令中的build改为build-dev
  • 注意正式环境要把2构建左边的自动触发关掉
  • 点击右侧的保存并立即运行

10.创建超级管理员账号

  • 打开common/authority.js修改以下变量
authority.DEFAULT_GROUP_IDS = [authority.groups.SUPER_MANAGER.id];
  • 重启服务器。打开浏览器进行访问。
  • 在登录页面点击初始化权限组按钮。密码在server/routes/cmd/subtask.js中。
    此时注册的账号即为超级管理员账号。
  • 还原common/authority.js中的修改

nginx配置

目前我们有两台服务器,校精灵与会众。各自路由规则不同。由于微信接口要求提供80端口地址,所以推荐暴露在80端口的写法

1.校精灵nginx配置80端口

校精灵服务器上运行着校精灵官网,localtunnel项目。
校精灵服务器中各项目使用不同的子域名,暴露出来的都是80端口,由nginx识别域名并路由到各项目node端口。
目前https配置(443端口)还不可用 新增项目时向ningx.conf中增加一段以下代码即可。xxx为项目名和端口号

# 项目名
server {
    listen       80;
    server_name  xxx.xiaojing0.com;
    limit_conn lim_conn 100;
    limit_req zone=lim_freq burst=50 nodelay;

    location / {
        proxy_pass http://127.0.0.1:xxx;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr;
    }
}
# 项目名测试环境
server {
    listen       80;
    server_name  xxx.dev.xiaojing0.com;
    limit_conn lim_conn 100;
    limit_req zone=lim_freq burst=50 nodelay;

    location / {
        proxy_pass http://127.0.0.1:xxx;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr;
    }
}

About


Languages

Language:JavaScript 99.7%Language:Batchfile 0.3%