模块的引入
const module = require("模块名称")
fs模块
//fs.readFile('地址',回调函数)
fs.readFile("./html/index.html","utf-8",(err,data)=>{
console.log("err",err) //如果文件读取成功,err就是null
console.log("data",data) //data就是读取后的文件内容
})
//fs.readFileSync
let data = fs.readFileSync("./html/index.html")
console.log("data",data)
console.log("我要成功了!")
try{
let data = fs.readFileSync("./html/indexa.html")
console.log("data",data)
}catch(e){ //e代表事件对象
//处理错误
console.log("e",e)
}
console.log("我要成功了")
fs.rename('改前','改后',err=>{})
fs.renameSync("改前","改后")
fs.renameSync("./html/index.html","./html/about.html")
fs.unlickSync("文件路径")
fs.rmdir("./html",err=>{
console.log("html目录以及被删除了哦....")
})
http模块
const = require("http")
const http = http.createServer((req,res)=>{
//req 相当于请求报文
//res 相当于响应报文
//后端需要设置响应头 后端设置的权重高
res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"})
res.write("hello world")
res.end() //后端需要结束响应 必须写
})
app.listen(8000,()=>{
console.log("server in running...")
})
url模块
//let obj = url.parse(str) 返回值是个对象 数据如下
protocol: 'http:', 协议
slashes: true, 双斜杠
auth: null, 作者
host: 'localhost:8002', 主机
port: '8002', 端口
hostname: 'localhost', baidu
hash: '#title', 哈希(锚) search: '?username=sdfsdf&content=234234', 查询字符串
query: 'username=sdfsdf&content=234234', 数据
pathname: '/aaa', 文件路径
path: '/aaa?username=sdfsdf&content=234234', 文件路径
href: 'http://localhost:8002/aaa?username=sdfsdf&content=234234#title'
let str = "http://www.baidu.com:80/app/html/index.html?a=1&b=2#title"
let obj = url.parse(str)
let josn = {}
let query = obj.query
let queryArr = query.split
query.forEach(v =>{
let vArr = v.split("=")
json[vArr[0]] = vArr[1]
})
console.log(json)
let str = "http://www.baidu.com:80/app/html/index.html?a=1&b=2#title"
let obj = url.parse(str,true) //可以直接将字符串转换为对象
url.format(obj) //可以将对象转换为url字符串
querystring模块
let querystring = require("querystring")
//处理查询字符串,地址栏的形式传参
let str = "a=1&b=2&c=3"
querystring.parse(str) //直接将字符串转换为对象
资源托管 处理接口
//引入响应的原生模块
const http = require("http")
const fs = require("fs")
const url = require("url")
const querystring = require("querystring")
//实例化http对象
const app = http.createServer((req, res) => {
//排除 /favicon.ico的请求
if (req.url.indexOf("/favicon.ico") === -1) {
//判断读取的是动态资源 还是静态资源
if (req.url.indexOf("/api") !== -1) {//处理接口
//处理地址栏的数据
let urlObj = url.parse(req.url, true)
console.log(urlObj.query)
//处理非地址栏的数据
let noAddressDate = ""
req.on("data", chunk => {
noAddressDate += chunk
//chunk代表抓取的一片数据 data事件内部会频繁触发
})
req.on("end", () => {
console.log(querystring.prase(noAddressDate))
})
} else {//处理静态资源
try {
let path = req.url === "/" ? "/index.html" : req.url
let html = fs.readFileSync("./www" + path)
res.write(html)
} catch (error) {
let html = fs.readFileSync("./www/nopage.html")
res.write(html)
}
}
}
res.end()
})
//监听端口
app.listen(3000)