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
- 切换镜像源
- npm config get registry
- npm config set registry=http://registry.npm.taobao.org/
- 包的分类
- 项目包
- 开发依赖包
- 核心依赖包
- 全局包 -g (安装卸载都要加)
- AppDta/Roaming/npm/node_modules
- 项目包
- 加载机制
- 优先从缓存中加载,不会多次加载
- 内置模块加载优先级最高
- 加载自定义模块一定要./ ../开头
- 名称缺省补全顺序.js .json .node
- 第三方模块加载机制
- 一层一层目录往上找/node_modules/packageName
- 模块目录下找到package.json
- 找到 main 属性 没有就找index.js作为入口