【笔记】Nodejs内置模块

前言

Nodejs内置模块学习笔记

fs文件系统模块

  • 在使用相对路径时,可能会遇动态拼接错误问题
    • 原理:在使用相对路径时,会将当前路径与相对路径进行拼接组成绝对路径,再通过绝对路径读写文件
    • 动态拼接错误:如果当前所在的路径与代码所在路径不在相同目录下,动态拼接的绝对路径会有误

引入模块

1
const fs = require("fs");

读取文件内容

  • 如果读取成功,则err为null,dataStr为读取文件内容
  • 如果读取失败,则err为错误对象,dataStr为undefined

<file>:读取文件的文件路径
utf-8:指定字符编码

1
2
3
4
5
6
fs.readFile("<file>", "utf-8", function (err, dataStr) {
if (err) {
return console.log(err.message);
}
console.log(dataStr);
});

写入文件内容

  • 如果写入的文件名已存在,则覆盖原文件
  • 写入文件时,只能创建文件,不能创建目录,如果目录不存在则会报错

<file>:写入文件的文件路径
<text>:写入的内容
utf-8:指定字符编码,可以省略,缺省值是utf-8

1
2
3
4
5
fs.writeFile("<file>", "<text>", "utf-8", function (err) {
if (err) {
return console.log(err.message);
}
});

path路径模块

引入模块

1
const path = require("path");

拼接多个路径

  • 虽然+也可以实现路径的拼接,但是不能自动优化相对路径中的./../

__dirname:当前js文件所在的目录

1
path.join(__dirname, "./", "../", ...);

解析路径中的文件名(包含后缀名)

<path>:文件路径

1
path.basename("<path>");

解析路径中的文件名(不包含后缀名)

.<extname>:文件后缀名

1
path.basename("<path>", ".<extname>");

解析路径中的文件后缀名

1
path.extname("<path>");

http模块

创建web服务器

80:指定端口号

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 引入模块
const http = require("http");
// 创建web服务器实例
const server = http.createServer();
// 绑定事件
server.on("request", function(req, resp) {
// 接收请求,返回响应
...
});
// 绑定端口,启动服务器
server.listen(80, function() {
// 启动成功后执行的代码
...
});

请求对象

获取请求的资源路径

1
req.url;

获取请求方式

1
req.method;

响应对象

返回响应

  • 响应数据给客户端,并结束本次请求

<str>:响应给客户端的数据

1
resp.end(<str>);

设置响应头

<key>:响应头键
<value>:响应头值

1
resp.setHeader("<key>", "<value>");
解决响应数据的中文乱码
1
resp.setHeader("Content-Type", "text/html; charset=utf-8");

完成

参考文献

哔哩哔哩——黑马程序员