Node.js进阶之【1】 : 向服务器写入文件、读取文
2020-03-17 本文已影响0人
岚平果
一、写入文件
-
1 . 在文件夹fs下新建一个fs.js文件
image.png
- 2 . 在【fs.js】里入以下内容
// fs模块用于对系统文件及目录进行读写操作。
const fs = require('fs');
// fs.writeFile(文件名、要写入的内容、回调函数返回的写入错误信息)
fs.writeFile('aaa.text', '内容', (err) => {
console.log(err)
})
-
终端输入命令 【node fs.js】,会发现【err 返回写入文件无错误,并且【fs文件夹下新出现了一个 aaa.text 文件】
image.png
-
-
4 . 我们看下 【aaa.text 文件里是不是我们上面有写入‘内容 ’ 两字】,发现是的。
image.png
二、读取文件
- 1 在上面写入文件的基础上,我们再在【fs.js】里进行读取文件
// fs.readFile(要读取的文件名, 回调函数返回的读取错误和读取正确返回的信息)
fs.readFile('aaa.text', (err, data) => {
if(err) {
console.log('读取文件失败')
} else{
// toString()是把二进制转化成可识别的内容
console.log(data.toString())
}
})
-
2 终端再执行下【node fs.js】, 会发现把【aaa.text】文件里的【内容】读取出来了。
image.png
三、[fs.rename] 更改文件名称
fs.rename('原来的文件名称', '现在的文件名称',(err, data) =>{
if(err) {
console.log('更改失败')
} else{
console.log('更改成功')
}
})
更改前:
image.png
更改后:
image.png
四、客户端向服务器请求读取文件
- 在上面fs文件夹的基础上,我们建立一个本地服务器【server.js】
// 引入http模块
const http = require('http');
// 引入file stytem
const fs = require('fs');
// 建立一个服务器,名称为 server
var server = http.createServer((req, res) => {
// 客户端发来的请求地址,默认的情况下请求的是 /favicon.ico
console.log(req.url)
// 结束请求
res.end();
})
// 服务器监听,8080为终端,可以为任何数字
server.listen(8080);
- 现在我们在终端启动下这个服务器,输入【node server.js】
node server.js
- 启动服务器之后,我们在浏览器上网址上输入【http://localhost:8080】回车后会发现终端返回是地址是默认的【/favicon.icon】
image.png
image.png
- 启动服务器之后,我们在浏览器上网址上输入【http://localhost:8080】回车后会发现终端返回是地址是默认的【/favicon.icon】
-
我们现在在【fs文件夹下】新建一个【www根文件夹】,里面【存放客户端需要返回服务器的文件】,在【www文件夹下】我们写入文件【index.html】和【read.text】
image.png
-
- 我们现在部署下服务器,当客户端来访问服务器下的文件时,都让它从【www文件夹下】进行访问,这时我们需要把地址进行统一。
var file_name = './www' + req.url;
image.png
- 现在再把客户端访问的文件结果给配置好
const http = require('http');
const fs = require('fs');
var server = http.createServer((req, res) => {
// 客户端发来的请求地址,默认的情况下请求的是 /favicon.ico
var file_name = './www' + req.url;
fs.readFile(file_name, (err, data) =>{
if(err) {
res.write('404')
} else {
res.write(data)
}
// 结束请求要放在fs回调函数里面,等待文件读取完成后再结束这个访问请求
res.end();
})
})
// 服务器监听,8080为终端,可以为任何数字
server.listen(8080);
image.png
- 现在我们通过浏览器进行访问服务器【index.html】文件,前提我们把访问的默认地址【/favicon.ico】给排除掉
if(req.url !== '/favicon.ico') {}
image.png
- 浏览器输入【http://localhost:8080/index.html】,回车后页面会出现和 【index.html】里一致的内容
image.png
image.png
- 浏览器输入【http://localhost:8080/index.html】,回车后页面会出现和 【index.html】里一致的内容
- 我们再在浏览器网址上输入【http://localhost:8080/read.text】,服务器就会把【www文件夹】下的【read.text】文件夹里 内容返回给我们
image.png
image.png
- 我们再在浏览器网址上输入【http://localhost:8080/read.text】,服务器就会把【www文件夹】下的【read.text】文件夹里 内容返回给我们
-
10 . 现在我们再请求一个服务器【www文件夹】下面没有的文件,比如 【index.js】,会发现把【404】返回给我们,提示没有这个文件
image.png
image.png
image.png