【Node.js】核心模块

核心模块:Node.js中自带的一些模块

node中的核心模块 包括fs、path、http、url

fs文件系统模块

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

使用fs模块时,先引入。

//引入核心模块fs
const fs = require("fs");

打印fs的内容时,使用utf8,或者toString(),将二进制数据流转换为 汉字等。

 【Node.js】核心模块_第1张图片

文件操作

1. 读文件 fs.readFile()

// 异步操作
fs.readFile("day1/ok.txt", (err, data) =>{
    if(err){
        console.log("文件读取失败,原因是" + err);
        return;
    }
    console.log(data.toString());
})
console.log("peace");

// 同步操作
const data = fs.readFileSync("day1/ok.txt", "utf8"); 
console.log(data);
console.log("peace");

        异步操作中,先输出peace再输出ok.txt内容。

        同步操作中,先输出ok.txt内容再输出peace。

2. 写文件 fs.writeFile()

//写文件
fs.writeFile("day1/aha.txt","写入文件", (err) =>{
    if(err){
        console.log("文件读取失败,原因是" + err);
        return;
    }
    console.log("文件写入成功!");
    console.log(data);
})

        默认就是 utf8的编码风格

        效果: 删掉文档原内容,写入新内容。如果指定文档不存在,就新建一个。

3. 追加文件 fs.appendFile()

var text = "爱在黎明破晓前"
fs.appendFile("day1/ok.txt", text, err => {
    if(err){
        console.log("文件追加失败,原因:" + error);
        return;
    }
    console.log("文件追加成功!");
})

        在指定文件后边,加入新内容。不会覆盖原内容。

 4. 拷贝文件 fs.copyFile()

var text = "爱在黎明破晓前"
fs.copyFile("day1/ok.txt", "day1/yes.txt", err => {
    if(err){
        console.log("文件拷贝失败,原因:" + error);
        return;
    }
    console.log("文件拷贝成功!");
})
//第一个参数是资源路径,第二个参数是 目的路径。 copy也会覆盖原文件内容。

        拷贝文件 会覆盖原文件内容。

流文件

        一般读取的是大文件

1. 读取流

var rs = fs.createReadStream("day1/yes.txt", {encoding: "utf8"});
let count = 0;
rs.on("open", () =>{
    console.log("读取流 open");
})
rs.on("data", chunk =>{
    //chunk是一个buffer,当前读取的数据片段,二进制数据流
    count++;
    console.log(count);
})
rs.on("end", () =>{
    console.log("文件读取 end");
})
rs.on("close", () =>{
    console.log("读取流 close");
})

2. 写入流

var ws = require("fs");
ws.write("林深时见鹿");
ws.end();
ws.on("open", () => {
    console.log("可写流开启");
})
ws.on("close", () => {
    console.log("可写流关闭");
})

path本地路径模块

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

使用时,先引入。

//引入核心模块path
const fs = require("path");

1. 路径拼接path.join()

const pathStr = path.join('/a', '/b/c', '../../', './d', 'e');
console.log(pathStr);   //  \a\d\e

以后涉及路径拼接,都是用path.join()方法进行处理。

const pathStr2 = path.join(__dirname, './day1/1.txt')

2. path.basename() :文件名+后缀
3. path.dirname()  :路径名
4. path.extname()  :后缀名
5. path.parse()    :将路径解析成对象
6. path.format()   :将对象整合成路径字符串
7. path.isAbsolute() : 是否是一个绝对路径 

let p = 'F:/all/node/day1/index.html'
console.log(path.basename(p));      //index.html
console.log(path.dirname(p));       //F:/all/node/day1
console.log(path.extname(p));       //.html
console.log(path.parse(p));         
    // {
    //   root: 'F:/',
    //   dir: 'F:/all/node/day1',
    //   base: 'index.html',
    //   ext: '.html',
    //   name: 'index'
    // }
console.log(path.isAbsolute(p));    //true

url网络路径模块

url:是用来处理网络路径的模块。

使用时,先引入。

//引入核心模块url
const {URL} = require("url");

使用url可以得到一些参数

const url = new URL (""http://localhost:8080/index.html?a=1&b=2);
console.log(url);

返回参数列表

【Node.js】核心模块_第2张图片

 利用得到的参数,可以进行 一些对应的操作。

url.req: 是对应地址的路由信息

在上边的href中url.req指的是: index.html?a=1&b=2

http网路服务模块

http是网络服务模块,创建服务并开启服务

使用时,先引入

// 引入核心模块http
const http = require("http");

创建http服务

http.createServer((req,res) => {
    res.writeHead(200, {'content-type': 'text/html;charset:utf-8'});
    res.end("http create success");
}).listen(8000, () => {
     console.log("http server is running on port 8000");
})

createServer()  :创建http服务

listen()  : 监听端口并创建服务

req :前端向后端传来的数据

res :后端向前端返回的数据

res.writeHead() :响应头

res.end() :返回前端的内容

 

 

你可能感兴趣的:(node.js)