(1)fs.readFile()的语法格式
fs.readFile(path[,options],callback)
参数1:必选参数,字符串,表示文件的路径。
参数2:可选参数,表示以什么编码格式来读取文件。
参数3:必选参数,文件读取完成后,回调函数。
(2)fs.readFile()的示例代码
const fs = require('fs')
fs.readFile('./1.txt','utf8',function(err,dataStr){
console.log(err); //失败打印,
console.log(dataStr);//成功打印
})
(1)fs.writeFile()的语法格式
fs.writeFile(file,data[,options],callback)
参数1:必选参数,需要指定一个文件路径的字符串,表示文件的存放路径。
参数2:必选参数,表示要写入的内容。
参数3:可选参数,表示以什么格式写入文件内容,默认值是utf8。
参数4:必选参数,文件读取完成后,回调函数。
(2)fs.writeFile()的示例代码
const fs = require('fs')
fs.writeFile('./2.txt','我是你爸爸',function(err){
if(err){
return console.log('文件写入失败'+err.message);
}
console.log('文件写入成功');
})
const fs = require('fs')
fs.readFile('./成绩.txt','utf8',function(err,data){
if(err){
console.log('获取失败');
}else{
const arr=data.split(' ')
const arrnew=[]
arr.forEach(item=>{
arrnew.push(item.replace('=',':'))
})
const newStr = arrnew.join('\r\n')
fs.writeFile('./新成绩.txt',newStr,function(err){
if(err){
return console.log('写入文件失败',err.message);
}
console.log('写入成功');
})
}
})
在使用fs模块操作文件时,如果提供的操作路径是以./或../开头的相对路径时,很容易出现路径动态拼接错误的问题。
原因:代码在运行的时候,会以执行node命令时所处的目录,动态拼接出被操作文件的完整路径。
可以用 __dirname 拼接路径。 __dirname代表当前路径,可以解决动态拼接路径的问题。
fs.readFile(__dirname+'/1.txt','utf8',function(err,dataStr){
if(err){
return console.log('读取文件失败!'+err.message)
}
console.log('读取文件成功!'+dataStr)
})
(1)path.join()的语法格式
path.join([...paths])
...paths<string>路径片段的序列
返回值:<string>
(2)path.join()的示例代码
fs.readFile(path.join(__dirname+'/1.txt'),'utf8',function(err,dataStr){
if(err){
return console.log('读取文件失败!'+err.message)
}
console.log('读取文件成功!'+dataStr)
})
(1)path.basename()的语法格式
path.basename(path[,ext])
path<string>必选参数,表示一个路径的字符串
ext<string>可选参数,表示文件扩展名
返回:<string>表示路径中的最后一部分
(2)path.basename()的代码示例
const path = require('path')
const fpath = '/a/b/c/index.html'
const fullName = path.basename(fpath)
console.log(fullName); //index.html
const fullnewName = path.basename(fpath,'.html')
console.log(fullnewName);//index
(1)path.extname()的语法格式
path.extname(path)
path<string>必选参数,表示一个路径的字符串
返回<string>返回得到的扩展名字符串
(2)path.extname()的代码示例
const path = require('path')
const fpath = '/a/b/c/index.html'
const pathnew = path.extname(fpath)
console.log(pathnew); //.html
(1)基本步骤
①导入http模块
const http = require('http')
②创建web服务器实例
const server = http.createServer()
③为服务器实例绑定request事件,监听客户端的请求
//使用服务器实例的.on()方法,为服务器绑定一个request事件
server.on('request',(req,res)=>{
//只要有客户端来请求我们自己的服务器,就会触发request事件,从而调用这个事件的处理函数。
console.log('Someone visit our web server')
})
④启动服务器
//调用server.listen(端口号,cd回调)方法,即可启动web服务器
server.listen(80,()=>{
console.log('http server running at http://127.0.0.1')
})
如果想在事件处理函数中,访问与客户端相关的数据或属性,可以使用如下的方式:
server.on('request',(req)=>{
//req是请求对象,它包含了与客户端相关的数据和属性,
//req.url是客户端请求的URL地址
//req.method是客户端的method请求类型
const str = 'Your request url is ${req.url},and request method is ${req.method}'
console.log(str)
})
const http = require('http')
const server = http.createServer()
server.on('request',(req,res)=>{
const url = req.url
const method = req.method
const str = `Your request url is ${url},and request method is ${method}`
console.log(str);
res.end(str)
})
server.listen(80,()=>{
console.log('server running at http://127.0.0.1')
})
res.setHeader('Content-Type','text/html; charset=utf-8' )
(1)核心实现步骤
①获取请求的url地址
②设置默认的响应内容为404 Not found
③判断用户请求的是否为/或/index.html首页
④判断用户请求的是否为/about.html关于页面
⑤设置Content-Type响应头,防止中文乱码
⑥使用res.end()把内容响应给客户端
(2)代码示例
const http = require('http')
const server = http.createServer()
server.on('request',(req,res) => {
const url = req.url
let content = '404 Not found!'
if(url==='/'||url==='/index.html'){
content=`<h1>首页</h1>`
}else if(url==='/about.html'){
content=`<h1>关于页面</h1>`
}
res.setHeader('Content-Type','text/html; charset=utf-8')
res.end(content)
})
server.listen(8080,()=>{
console.log('server running at http://127.0.0.1:8080');
})