API框架:PC端、微信、APP
基础技术: Javascript异步编程的4种方法http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html
前端相关技术:
以dva为基础进行开发。使用说明:https://github.com/dvajs/dva/blob/master/README_zh-CN.md
dva继承了下面的组件
1.React,facebook开源的前端框架,入门教程:http://www.ruanyifeng.com/blog/search.html?cx=016304377626642577906%3Ab_e9skaywzq&cof=FORID%3A11&ie=UTF-8&q=react&sa.x=0&sa.y=0
2.Redux 用于React的状态管理组件,使用说明:http://cn.redux.js.org
3.antd 前端UI库,http://ant.design
前端开发需要用的工具
1.npm:nodejs的包管理工具
2.chrome核心的浏览器
服务器端相关技术:
- REST服务组件restify,主页:http://restify.com
- 数据操作组件Sequeliz, https://itbilu.com/search 搜索 sequeliz
- restify的集成后台open-rest,https://open-rest.xiongfei.me
代码运行:(下面的命令,在windows机器上,需要在cmd命令行下执行)
1.开发机器安装nodejs、npm
2.解压前端代码到某个目录,在此目录下执行 npm install 安装第三方组件
3.执行 npm run dev 启动开发服务,启动后,会提醒你服务端口,比如:8001
4.解压服务器端代码到某个目录,在此目录下执行 npm install 安装第三方组件
5.执行 npm install -g nodemon 安装nodemon工具
6.执行 nodemon ./index.js 启动服务器端代码
7.在浏览器中输入 localhost:8001 测试代码。
注意:
1.前端代码修改后,需要刷新页面,加载新代码
2.开发环境下,前端代码配置的服务器地址,要和你本机匹配。
前端配置文件: src/utils/config.js
服务器端端口配置位置:app/configs/config.development.js
前端开发端口配置:package.json
代码部署:
1.前端代码
1.1 首先修改配置文件为正式服务器地址
1.2 执行node run build,会在../build目录下生成,编译好的html、js文件。
1.3 生成的文件中有个文件 index-*******.js,比如:index-fa30b4abdf2739d23923.js
1.4 打开../build/index.html 修改其中的 index.js 为上面的真实文件名。
1.5 将../build目录下的文件上传到服务器,覆盖旧文件。
2.后端代码
2.1 将后端代码更新到服务器
2.2 如果你需要使用了新组件,在服务器上要使用npm install xx安装子
2.3 调试服务器启动,nodemon ./index.js(npm install nodemon)
2.3 执行 /etc/init.d/gongcheng restart 重启服务,启用新代码
系统服务启动
- mysql重启 /etc/init.d/mysql restart
- nginx(负责Web服务)重启 service nginx restart
- 系统API服务器重启 /etc/init.d/wuzi restart (物资) /etc/init.d/gongdan restart (维护) /etc/init.d/gongcheng restart(工程)
- 维护系统的负载均衡。
4.1 基本API处理进程:12服务器的(/etc/init.d/gongdan),22服务器的(/etc/init.d/gongdan8082)
4.2 工单查询进程:22服务器的两个进程(/etc/init.d/gongdan80,/etc/init.d/gongdan8083),12服务器的(/etc/init.d/gongdanUpload)
4.3 工单和小区数据的导出:22服务器提供两个进程(/etc/init.d/gongdan8080,/etc/init.d/gongdan80)
问题总结
location /api_test/ {
proxy_pass http://127.0.0.1:7002/;
检查后面的/是否匹配。Method Not Allow.的问题。
rm -rf node_modules/_open-rest@8.0.3@open-rest/node_modules/restify
rm -rf node_modules/_open-rest-with-mysql@0.2.0@open-rest-with-mysql/node_modules/sequelize
删除多余的库,通过find查找具体位置,主package与某些插件所需版本不同导致的,安装了多版本。没搜到就不管了。