• NVM
    • nodeJs version management node版本管理工具
    • nvm list 查看已安装node版本
    • nvm install(uninstall) [version] 安装/卸载【指定版本】
    • nvm use [version] 切换指定版本
  • NPM
    • npm i 安装所有依赖,npm i --production 安装生产环境依赖
    • npm view 查看包版本
      • Npm view package versions
      • 版本号信息
        • major 主版本号
        • minor 次版本号
        • patch 补丁版本 (偶数为稳定)
      • ^ 代表锁定主版本
      • ~代表锁定主副版本
      • 代表最新版
    • npm outdated 查看过期的包
    • npm update 更新版本
    • npm cache clean --force 清除缓存
    • 发布自定义npm包
      • 配置package.json文件
      • npm adduser
        • 用户名 密码 邮箱(需要更改npm源)

        • npm config set registry http://registry.npmjs.org

      • npm publish 发布自定义包
    • 查看端口占用
      • lsof -i :端口号
    • require 文件引入策略
      • 文件模块(自定义模块) 先查找package.json下的main属性,没有则查找index.js
      • 第三方模块 查找node_modules
  • http模块
    • 创建http请求服务
    • 响应头:Content-Type: 响应文件
    • 请求方式
      • get 查
      • post 增
      • put /patch改
      • delete 删
  • path模块
    • __dirname 当前文件所在目录的绝对路径
    • __filename 当前文件的绝对路径
    • extname 文件扩展名
    • basename 文件名
  • express第三方模块
    • RESTful接口规范
      • 根据不同的请求类型与不同路径实现不同的接口
    • 参数获取方式
      • 通过url传参(get) req.query获取
        • 形式?key=value&key=value
      • 通过请求体传递(post) req.body获取
        • 需要express.urlencoded() 中间件格式化参数
        • 如果是json数据,则使用express.json
      • 请求头传参 req.get()获取
        • req.get(字段名) 返回指定的 HTTP 请求头字段(不区分大小写匹配)
      • 动态路由传参 req.params获取
    • 模块化路由
      • express.Router()
      • 先定义好路由名称,再用该路由去执行操作,最后导出路由
        • const router = express.Router();module.exports = router;
      • 拓展
        • es6新增数据类型 symbol 符号数据
          • 值唯一
        • es10 新增数据类型 BigInt 大整数
  • 文件上传
    • 表单形式
      • <form method="post" action="http://localhost:6456/api/upload/avatar" enctype="multipart/form-data" target="_blank"> <input type="file" name="avatar" multiple> <input type="submit"></form>
    • ajax请求形式
      • js内置格式化FormData对象 (前端使用)
        • append(name,value,[filename])方法

          • 向对象中添加新的属性值,以追加的方式
          • name 表单名称
          • value 表单对应的数据
        • set(name,value,filename)

          • 向对象中添加新的属性值,以覆盖的方式

          • name 表单字段名称

          • 字段的值

        • get(name)

          • 获取对象中指定键关联的第一个值
          • name 需要获取的键名
        • getAll(name)

          • 获取对象中指定键的所有值
        • delete(name)

          • 删除指定键值对
    • multer模块 第三方格式化(后端使用)
  • 跨域的解决方式
  • 客户端渲染与服务端渲染
  • 数据库链接
  • I/O文件流
  • axios请求库
  • cheerio 包含jQuery核心库的模块
  • lodash
  • 爬虫
  • token令牌