js三大组成部分: ECMASCRIPT(声明JS变量,判断,循环等语法),DOM(document),BOM(window,location等)
nodejs内置核心模块:http服务(createServer可以接收和访问服务器 server.on.listen),fs文件操作(writeFile,readFile->Buffer对象toString()或者指定option),url路径(parse(data,true)),path路径处理(dirname去掉最后一层路径,basename取最后一层路径),os操作系统
第三方模块
自定义模块
CommonJS模块规范
一个文件就是一个模块
通过exports和module.exports来导出模块中的成员
通过require来加载模块
npm
list
install
uninstall
安装参数
-- save 记录生成环境所需模块(默认)
-- save-dev 记录开发环境所需模块
-g 该模块可在命令行运行(global)
都安装: npm install
只安装生成环境: npm install --production
init -y 初始化生成package.json
npm config list
软件版本含义
alpha 内测
beta 公测
rc 预览
stable 用户可用
版本号
主版本号.次版本号.修改版本号
主版本 功能模块有大的变动,比如增加多个模块或者整体架构发生变化
次版本 此版本号的升级对应的只是局部的变动
修改版本 Bug修复或者功能的扩充等
~最多升级到修改版最新
^最多升级到次版本最新
*可以升级到最新版本
NPM源管理
npm install nrm -g
nrm ls
nrm use 服务器名
nrm test
NPM自定义脚本命令
npm run 名称 (scripts中的键)
两个命令简写,start和test属于特殊命令,可以省略run,其余的都得带上run。
pre-和post-两个钩子(hook)
npm会先查看有没有定义prelint和postlint两个钩子,如果有的话,就会
先执行npm run pre-命令名,然后执行npm run 命令名,最后执行npm run post-命令名。
"scripts": {
"start": "npm-run-all -p electron:serve ng:serve",
"build": "npm run electron:serve-tsc && ng build --base-href ./",
"ng:serve": "ng serve -c web --port 8080",
"electron:serve-tsc": "tsc -p tsconfig.serve.json",
"electron:serve": "wait-on tcp:8080 && npm run electron:serve-tsc && electron . --serve",
"electron:local": "npm run build:prod && electron .",
"electron:build": "npm run build:prod && electron-builder build --publish=never",
"electron:windows": "npm run build && electron-builder --windows",
"electron:windows_codesign": "npm run build && electron-builder --windows --config.win.sign=./build/script/sign.js",
"electron:linux": "npm run build && electron-builder --linux",
"test": "ng test",
"pretest": "npm run lint",
"posttest": "echo 'Finished running tests'"
},
清除代理
setx /m no_proxy registry.npmjs.org,github.com
moment模块(日期处理)
nvm node版本管理工具
中间件
HTTP请求中的过滤层(HTTP请求交给方法处理前,先交给另一个方法过滤)
应用场景:判断登录状态,检测RBAC(角色的权限验证)权限,错误捕捉等
路由守卫
熟悉Vue,React的伙伴应该比较熟悉这个概念,通俗的说就是在访问指定的路由之前回调一个处理函数,如果该函数返回true或者调用了next()就会放行当前访问,否则阻断当前访问。
MVC框架
入口文件>commonController.php>IndexController.php/UserController.php...
NodeJS
app.js>app.use("/",function(){逻辑代码...next()})>app.get(路径,回调函数)
js数据类型
基本数据类型 字符串,数值,布尔
复合类型 数组,对象
特殊类型 null,undefined
ES6语法
Symbol 生成独一无二的值
Set 场景数组去重
Map 类似与对象,但键不限于字符串
增强for循环
函数扩展
rest参数和arguments区别:rest参数更加灵活
函数参数的默认值
箭头函数
rest
class类
this public
var private
浙公网安备 33010602011771号