1.fs操作
// 导入模块
const fs=require('fs')
// 调用用方法读文件
// 用./的相对路径可能会出现路径动态拼接失败 加入绝对路径就行
// fs.readFile('./file','utf-8',function(err,dataStr){
// console.log(err)
// console.log('=======')
// console.log(dataStr)
// })
fs.readFile('./file','utf-8',function(err,dataStr){
if(err){
return console.log('读取失败'+err)
}
console.log('读取成功')
})
const fs=require('fs')
// _dirname表示当前文件所处目录
console.log(__dirname)
fs.readFile(__dirname+'1.txt','utf-8',function(err,datasrc){
if(err){
console.log('文件读取失败'+err.message)
}
console.log('读取成功')
})
// 写文件
fs.writeFile('./file','abc','utf-8',function(err){
if(err){
console.log('写入失败'+err)
}
console.log('写入成功')
})
const fs=require('fs')
fs.readFile('./file','utf-8',function(err,datastc){
if(err){
return console.log('读取失败'+err)
}
const arrOld=datastc.split(' ')
const newarr=[]
arrOld.forEach(item =>{
newarr.push(item.replace('=',':'))
})
console.log(newarr)
fs.writeFile('./file',newarr,function(err){
if(err){
return console.log('写入文件失败'+err.message)
}
console.log('写入成功')
})
})
拼接路径path.join
const fs=require('fs')
// _dirname表示当前文件所处目录
console.log(__dirname)
fs.readFile(__dirname+'1.txt','utf-8',function(err,datasrc){
if(err){
console.log('文件读取失败'+err.message)
}
console.log('读取成功')
})
const path=require('path')
// ../会取消前一层路径
path.join('/a','/b/c','../','./d')
fs.readFile(path.join(__dirname,'/file.txt'),'utf-8',function(err,datasrc){
if(err){
return console.log('读取错误'+err.message)
}
console.log(datasrc)
})
不要 or 要 拓展名
var pathname='a/b/c/index.html'
var fullname=path.basename(pathname)
console.log(fullname)
// 不要拓展名
const namewithoutext=path.basename(fullname,'.html')
console.log(namewithoutext)
// 只要拓展名
const nameext=path.extname(fullname)
console.log(nameext)
fs path的综合 案例 从一个文件中读取js html css
const fs=require('fs')
const path=require('path')
// 用正则表达式匹配Style
const regSytle=/<style>[\s\S]*<\/style>/
// 用正则表达式匹配script
const ergScript=/<script>[\s\S]*<\/script>/
// 正则处理html
const regHTML=/<script>[\s\S]*<\/script>/
fs.readFile(path.join(__dirname,'../素材/index.html'),'utf-8',function(error,datamessage){
if(error){
return console.log('读取失败'+error.message)
}
resolveCSS(datamessage)
})
// 定义css样式方法
function resolveCSS(htmlSrc){
// 用正则提取相应内容
const r1=regSytle.exec(htmlSrc)
// 提取出来的内容用键值对替换
const newcss=r1[0].replace('<style>','').replace('</style>','')
console.log(newcss)
// 调用wirtefile 写入css
fs.writeFile(path.join(__dirname,'./clock/index.css'),newcss,function(err){
if(err){
return console.log('写入css失败'+err.message)
}
console.log('写入成功!')
})
}
// 定义script样式方法
function resolveJS(jsSrc){
const r1=ergScript.exec(jsSrc)
const newjs=r1=[0].replace('<script>','').replace('</script>','')
console.log(newjs)
fs.writeFile(path.join(__dirname,'./clock/index.js'),newjs,function(err){
if(err) {
return console.log('写入失败'+err.message)
}
console.log('写入成功')
})
}
// 处理html文件
function resolveHTML(htmlSrc){
const newhtml=htmlSrc.replace(regSytle,'<link rel="stylesheet" href="./index.css"/').replace(ergScript,'<script src="./index.js"></script>')
// 写入文件
fs.writeFile(path.join(__dirname,'./clock/index.html'),newhtml,function(err){
if(err) return console.log('写入失败'+err.message)
console.log('写入成功')
})
}
HTTP模块
// 导入模块
const http=require('http')
// 创建web实例
const server=http.createServer()
// 绑定request事件设置监听
// server.on('request',function(req,res){
// console.log('Someone visit our web server')
// })
// req 请求对象 res 相应对象
server.on('request', (req,res) =>{
const url=req.url
const method=req.method
// 写死页面路径
let Content='<h1>404 not found !</h1>'
if(url==='/'||url==='index.html'){
content='<h1>首页</h1>'
}else if(url==='/about.html'){
content='<h1>关羽</h1>'
}
const str='your request url is ${url} and request method is ${method}'
console.log(str)
// 调用res
res.end(str)
// 设置响应头 防止乱码
const s1='好耶'
res.setHeader('Content-Type','text/html;charset=utf-8')
res.end(s1)
})
server.listen(80,function(){
console.log('server running at 127.0.0.1')
})
//以上实例
const http=require('http')
const fs=require('fs')
const path=require('path')
// 创建web服务器
const server=http.createServer()
// 监听request对象
server.on('request',(req,res)=>{
// 获取客户端请求的url地址
const url=req.url
// 优化请求
let fpath=''
if(url==='/'){
fpath=path.join(__dirname,'/clock.html')
}
else{
fpath= path.join(__dirname,'/clock',url)
}
// 请求的URL地址映射为具体文件的存放路径
path.join(__dirname,url)
// 根据映射读取文件内容
fs.readFile(fpath,'utf-8',(err,datasrc)=>{
if(err) return res.end('404 not found')
res.end
})
})
// 启动服务器
server.listen(80,()=>{
console.log('server running on port 80')
})