Node.js关于fs,path,http模块

您所在的位置:网站首页 fs模块如何创建目录 Node.js关于fs,path,http模块

Node.js关于fs,path,http模块

#Node.js关于fs,path,http模块| 来源: 网络整理| 查看: 265

1.首先了解

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 作为一个JavaScript 的运行环境,仅仅提供了基础的功能和 API。然而,基于Node.js 提供的这些基础能,很多强大的工具和框架如雨后春笋,层出不穷,所以学会了 Node.js ,可以让前端程序员胜任更多的工作和岗位。

2.fs模块

fs 模块是 Node.js 官方提供的、用来操作文件的模块。它提供了一系列的方法和属性,用来满足用户对文件的操作需求。

node.js ----fs模块----系统文件操作模块 1.fs.stat 检测是文件还是目录(目录 文件是否存在) 2.fs.mkdir 创建目录 (创建之前先判断是否存在) 3.fs.writeFile 写入文件(文件不存在就创建,但不能创建目录) 4. fs.appendFile 写入追加文件(末尾追加) 5.fs.readFile 读取文件 6.fs.readdir 读取目录 7.fs.rename 重命名 8.fs.rmdir 删除目录 ①fs.readFile

fs.readFile(‘参数1’[, ‘参数2’], 参数3) fs.readFile(“./demo.txt”, “utf-8”, (err, data) => {} 参数1:必选参数,字符串,表示文件的路径。 参数2:可选参数,表示以什么编码格式来读取文件,一般是utf-8编码。 参数3:必选参数,文件读取完成后,通过回调函数拿到读取的结果。

const fs = require('fs'); fs.readFile('./demo1.txt', 'utf-8', (err, dataStr) => { if (err) { return console.log('读取文件失败', err.message); } console.log('读取文件成功', dataStr); }); ②fs.writeFile

fs.writeFile(参数1,参数2[,参数3],参数4) 参数1:必选参数,需要指定一个文件路径的字符串,表示文件的存放路径。 参数2:必选参数,表示要写入的内容。 参数3:可选参数,表示以什么格式写入文件内容,默认值是 utf8。 参数4:必选参数,文件写入完成后的回调函数。

const fs = require('fs'); fs.writeFile('./demo2.txt', '123456', (err) => { if (err) { return console.log('写入失败', err.message); } console.log('写入成功'); }); ③fs模块初体验 //1导入fs模块对象 const fs = require("fs"); // node fs.js // console.log(fs); //2操作系统文件 //2.1 读取文件内容 fs.readFile("./demo.txt", "utf-8", (err, data) => { // err为null,代表读取成功 if (err) { console.log("失败"); } else { console.log("成功" + data); } }); //2.2写入文件内容 const text = "追加"; fs.appendFile("./demo.txt", text, (err) => { if (err) { return console.log("写入失败", err.message); } console.log("写入成功"); }); //2.3检测当前文件目录是否存在 fs.stat("./files", (err, stats) => { if (err) { // 如果不存在,则创建新的文件目录之后,再写入数据 fs.mkdir("./files", () => { console.log("创建files文件夹成功"); newFile(); }); } else { newFile(); } }); const newFile = () => { fs.appendFile("./files/demo2.txt", text, "utf-8", (err) => { if (!err) { console.log("写入成功!"); } }); }; ④fs模块初体验之拼接导入 //1导入fs模块对象 const fs = require("fs"); const path = require("path"); let dataArr = ""; let dataArr2 = ""; fs.readFile("./demo.txt", "utf-8", (err, data) => { dataArr = data.split(" ").join("\r\n"); fs.readFile("./demo2.txt", "utf-8", (err2, data2) => { data = data + " " + data2; dataArr2 = data.split(" ").join("\r\n"); fs.writeFile("./demo3.txt", dataArr2, (err) => {}); }); // __dirname 当前文件的绝对路径 const fliePath = path.join(__dirname, "/demo3.txt"); const fliePath2 = path.basename(__dirname + "/demo3.txt", ".txt"); const fliePath3 = path.extname(__dirname + "/demo3.txt"); fs.writeFile(fliePath, dataArr, (err) => { if (!err) { console.log("写入成功!"); } }); // dataArr = data.split(" ") }); 3.path模块

path 模块是 Node.js 官方提供的、用来处理路径的模块。它提供了一系列的方法和属 性,用来满足用户对路径的处理

①path.join

path.join([…paths]) …paths 路径片段的序列 返回值:

const path = require('path'); const pathstr = path.join('/a', '/b/c', '../', './d', 'e'); console.log(pathstr); //输出\a\b\d\e const pathStr2 = path.join(__dirname, './files/demo1.txt '); console.log(pathStr2); //输出 当前文件所在目录\files\demo1.txt ②path.basename

path 必选参数,表示一个路径的字符串 ext 可选参数,表示文件扩展名 返回: 表示路径中的最后一部分

const path = require('path'); const fpath = '/a/b/c/index.html'; //文件的存放路径 var fullName = path.basename(fpath); console.log(fullName); //输出index.html var namewithoutExt = path.basename(fpath, '.html'); console.log(namewithoutExt); //输出index ③path.extname(path)

path 必选参数,表示一个路径的字符串 返回: 返回得到的扩展名字符串

const path = require('path'); const fpath = '/a/b/c/index.html'; //路径字符串 const fext = path.extname(fpath); console.log(fext); //输出.html ④path模块体验 //1导入fs模块对象 const fs = require("fs"); const path = require("path"); let dataArr = ""; let dataArr2 = ""; fs.readFile("./demo.txt", "utf-8", (err, data) => { dataArr = data.split(" ").join("\r\n"); fs.readFile("./demo2.txt", "utf-8", (err2, data2) => { data = data + " " + data2; dataArr2 = data.split(" ").join("\r\n"); fs.writeFile("./demo3.txt", dataArr2, (err) => {}); }); // __dirname 当前文件的绝对路径 const fliePath = path.join(__dirname, "/demo3.txt"); const fliePath2 = path.basename(__dirname + "/demo3.txt", ".txt"); const fliePath3 = path.extname(__dirname + "/demo3.txt"); fs.writeFile(fliePath, dataArr, (err) => { if (!err) { console.log("写入成功!"); } }); // dataArr = data.split(" ") }); 4.http模块

http 模块是 Node.js 官方提供的、用来创建 web 服务器的模块。通过 http 模块提供 的 http.createServer() 方法,就能方便的把一台普通的电脑,变成一台 Web 服务器,从而对外提供 Web 资源服务

①http普通使用 //部署node本地服务器 //1.导入http模块 const http = require("http"); // console.log(http); //2.创建web服务器实例 const server = http.createServer(); //3.为服务器实例绑定request事件,监听客户端请求 //req 客服端请求响应 req.url req.method //res 服务端请求响应 res.end() server.on("request", (req, res) => { console.log("服务器请求"); //发送的内容包含中文 const str = `您请求的url地址是 ${req.url}---请求的 method类型是${req.method}`; //为了防止中文显示乱码的问题,需要设置响应头Content-Type 的值为text / html;charset = utf - 8; res.setHeader("Content-Type", "text/html;charset=utf-8"); //把包含中文的内容,响应给客户端 res.end(str); }); //4.启动服务器 server.listen(80, () => { console.log("服务器启动了http://127.0.0.1:80 "); }); ②根据不同的 url 响应不同的 html 内容 // 根据不同的 url 响应不同的 html 内容 // 1.导入http,fs,path模块 const http = require("http"); const fs = require("fs"); const path = require("path"); // 2.创建nodejs服务器实例对象 const server = http.createServer(); // 3.绑定request事件,监听客户请求行为 server.on("request", (req, res) => { // 3.1 获取URL地址 const url = req.url; console.log(url); let content = ""; // 3.3 读取页面数据 let pageUrl = path.join(__dirname, url); // 请求网址: http://127.0.0.1/clock/index.html if (url == "/") { pageUrl = path.join(__dirname, "/index.html"); } // 读取clock/index.html页面数据 fs.readFile(pageUrl, "utf-8", (err, dataStr) => { if (!err) { // 请求成功是响应的页面数据 res.end(dataStr); } else { // 请求失败时响应的页面数据 console.log("请求失败"); content = "404 Not found!"; res.end(content); } }); }); // 4.启动服务器 server.listen(80, () => { console.log("http://127.0.0.1"); });


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3