昨天看过的内容:
1.node项目的产品化/工程化
step1.确定目录结构
我总结的比较合理的目录结构是:
app.js //入口文件
controllers //控制器文件夹
models //模型文件夹
middlewares //中间件夹
views //视图文件夹
config.js //配置文件
router.js //路由文件
logs //日志目录
tests //单元测试文件夹
public //静态文件目录
bin //可执行脚本
step2.构建工具
make 和 grunt
step3.代码审查
gitlab/github 除了托管代码,还实现了代码审查
2.代码部署流程
####### 部署环境:
一般来说,环境要包含三种环境,分别为dev,test,product
dev为开发分支.test为测试分支,product为正式的线上分支
####### 部署操作:
手动操作比较复杂,且不方便,且出现问题不易及时发现和解决.常用的方法是用pm2类的第三方工具或者自己写脚本来做.比较方便控制应用的启动,停止和重启.
####### 日志:
####### 监控:
####### 报警:
####### 稳定性:
2.模块与CommonJS规范
首先,node应用是由模块组成的.每一个文件都是一个模块.CommonJS规范规定,每个模块内部,module变量代表当前模块。这个变量是一个对象,它的exports属性(即module.exports)是对外的接口。加载某个模块,其实是加载该模块的module.exports属性。
第二,模块的实现.Node中引入模块的步骤为
路径分析->文件定位->编译执行
模块分为核心模块和文件模块.核心模块是Node提供的模块,在Node源代码编译的过程中,编译进进了二进制执行文件,在node进程启动的时候,部分的核心代码直接被加载到了内存里,不需要路径文件定位和比啊你执行,在路径分析中优先片段了,故加载速度最快.而文件模块是用户边写的模块,是动态加载的,需要以上三个步骤,速度比较慢.但是node会对引入过的模块进行缓存处理,所以二次加载的时候速度很快.速度如下:
缓存加载>核心模块>文件模块
网友评论