Skip to content

Node

区别于浏览器环境

  • 浏览器运行环境
    • V8引擎
    • 内置API
      • DOM
      • BOM
      • Canvas
      • XMLHttpRequest
      • Js内置对象
      • 等等
    • js代码调用内置API函数再交给引擎解析和执行
  • Node.js运行环境
    • V8 引擎
    • 内置API
      • fs
      • path
      • http
      • js 内置对象
      • querystring
      • ...
    • js代码调用内置API函数再交给引擎解析和执行
    • 杂项
      • __dirname 表当前文件所处的目录 尽量用其代替相对路径
      • mount 格式化时间包
        • const time = mount().format('YYYY-MM-DD HH:mm:ss')

fs 文件系统模块

  • const fs = require('fs') 导入
    • fs.readFile(path[,option],callback)
      • fs.readFile('./1.txt','utf8',function(err,data){})
    • fs.writeFile(file,data[,option],callback)
      • fs.writeFile(./2.txt,'abc',function(err){})
      • 不能创建路径(文件夹)
      • 新覆盖旧
  • fs.mkdirSyns('path')创建路径(文件夹)

path 路径模块

  • const path = require('path')
    • .join([...paths])拼接
      • .join('/a','/b/c','../','./d','e') /a/b/d/e
  • .basename(path[,ext]) 获取文件名 (写上扩展则不带扩展名)
  • .extname(path) 获取扩展名 .ext

http 服务器模块

  • const http = require('http') 导入
  • const server = http.createServer() 创建实例
  • server.on('request',(req,res)=>{}) 绑定请求事件
    • req 请求对象
    • res 响应对象
      • .setHeader('Content-Type','text/html; charset-utf-8') 设置响应头解决中文乱码问题
      • .end(str)
  • server.listen(80,callback)启动服务

模块化

  • module 对象 包含关于模块的信息
  • 用require() 方法导入模块时拿到的是module.exports
  • exports和 module.exports 初始指向同一个对象
  • npm install 包@版本号 npm i module
  • npm uninstall packageanme
  • package.json 包管理配置文件
  • npm init -y 自动创建配置文件
  • dependencies 记录装了哪些包
  • devdependencies 只在开发环节用到
  • npm i packagename -D / npm install packagename --save-dev
  • 切换镜像源
  • 包的分类
    • 项目包
      • 开发依赖包
      • 核心依赖包
    • 全局包 -g (安装卸载都要加)
      • AppDta/Roaming/npm/node_modules
  • 加载机制
    • 优先从缓存中加载,不会多次加载
    • 内置模块加载优先级最高
    • 加载自定义模块一定要./ ../开头
    • 名称缺省补全顺序.js .json .node
    • 第三方模块加载机制
      • 一层一层目录往上找/node_modules/packageName
      • 模块目录下找到package.json
      • 找到 main 属性 没有就找index.js作为入口