path模块(路径模块)
+ path.join()
== 将所有给定的path片段链接在一起
== 规范化生成的路径
== 语法: path.join('/目录1','目录2','目录3/目录4')
== 返回值: '/目录1/目录2/目录3/目录4'
== 返回值不一定是绝对路径
+ path.resolve()
== 同path.join()
== 区别: 会将路径或路径片段的序列解析成绝对路径
url.parse
== 作用:把URL解析成对象
== 语法:url.parse(urlString,parseQueryString,slashesDenoteHost)
== urlString:表示url地址
== parseQueryString:是一个布尔值,如果为true,会解析查询字符串
== slashesDenoteHost:是一个布尔值,如果为true,表示//后面,/前面是主机名(完整地址设不设置关系不大)
url.format
== 作用:把url对象解析成url地址字符串
== 语法: url.format(url对象)
== 返回值: url地址字符串
url.resolve
== 作用: 把两端url片段,组合成一个完整的url
== 返回值: url地址字符串
querystring模块
== 对查询字符粗执行更加强大的解析
querystring.stringify()
== 作用:把对象变成查询字符串
== 语法: querystring.stringify(要转换的对象[,自定义分隔符,自定义键值对之间的链接符])
== 默认是用&作为分隔符,键值用=链接
== 返回值:查询字符串
querystring.parse()
== querystring.stringify的逆方法
== 语法:querystring.parse('查询字符串'[,自定义分隔符,自定义键值对之间的链接符])
== 返回值:对象
querystring.escape()
== 把字符串进行url编码
querystring.unescape()
== 对url进行解码
import * as fs from "fs";
// 获取文件信息
fs.stat('./07fs_stat.mjs',function(err,stats){
// 获取完成文件信息以后执行
if(!err){
console.log(stats)
console.log(stats.isFile());//判断是否是一个文件
console.log(stats.isDirectory());//判断是否是一个文件夹
}
})
const fs = require('fs');
fs.mkdir('abc',function(err){
// 当文件夹创建完成以后执行这个函数
if(!err){
console.log('目录创建成功')
}
})
const fs = require('fs');
// 写入的文件路径
const filePath = "logs/d.txt";
const text = "写入文件的内容\n";
// 异步 覆写
// fs.writeFile(filePath,text,function(err){
// if(!err){
// console.log('文件写入成功')
// }
// })
// 异步 追加写入文件
fs.appendFile(filePath,text,function(err){
if(!err){
console.log('文件写入成功')
}
})
const fs = require('fs');
const filePath = "logs/d.txt";
// 第一种写法
fs.readFile(filePath,(err,data)=>{
// 当文件读取完成执行该函数
if(!err){
console.log(data.toString())
}
})
// 第二种写法
fs.readFile(filePath,'utf-8',(err,data)=>{
if(!err){
console.log(data)
}
})
// 读取文件目录
fs.readdir('logs',(err,files)=>{
if(!err){
console.log(files)
}
})
const filePath = "logs/d.txt";
const newPath = 'logs/great.txt';
fs.rename(filePath,newPath,(err)=>{
if(!err){
console.log('文件名修改成功')
}
})
// 不仅可以修改文件名
// 还可以修改文件夹的名字
// 导入events模块
const EventEmitter = require('events');
// 创建一个事件触发器
const myEvent = new EventEmitter();
// 定义事件监听器
myEvent.on('many',(data)=>{
console.log('many事件发生了')
console.log(data)
})
myEvent.once('one',()=>{
console.log('one事件发生了')
})
// 触发事件?传递事件参数?
myEvent.emit('many')
myEvent.emit('many',{name:'zhangsan'})
myEvent.emit('many',123)
myEvent.emit('one')
myEvent.emit('one')
myEvent.emit('one')
http模块/https模块
+ http.request()
== 第一步:书写请求行和请求头
+ 方式一: var req = http.request(url,callback)
+ 方式二: var req = http.request(options,callback)
== 第二步:书写请求主体
+ req.write()
== 第三步:结束请求
+ req.end()
+ http.get()
== 语法:同http.request()
== 区别
== 不用设置method,是get请求
== 不用书写req.write() ,get请求没有请求主体
== 不用调用req.end() ,会自动调用
+ http.createServer()
== 作用:开启服务器,二阶段讲过