持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第20天,点击查看活动详情
前言
大家好呀,我是L同学。在上篇文章node知识点总结(二)中,我们学习了node相关知识点,包括global模块、fs文件系统模块、如何读取指定文件内容、如何向指定文件写入内容等相关知识点。今天,在这篇文章中,我们来学习node的其他知识点,包括path路径模块、路径拼接、获取路径中的文件名、获取路径中的文件扩展名、http模块等相关知识点。
path路径模块
path模块是Node.js官方提供的、用来处理路径的模块。它提供了一系列的方法和属性,用来满足用户对路径的处理需求。
例如:
- path.join()方法,用来将多个路径片段拼接成一个完整的路径字符串。
- path.basename()方法,用来从路径字符串中,将文件名解析出来。
如果要在 JavaScript 代码中,使用 path 模块来处理路径,则需要使用如下的方式先导入它。
const path = require('path')
路径拼接 —— path.join()
使用path.join()方法,可以把多个路径片段拼接为完整的路径字符串,语法格式如下。
path.join([...paths])
- ...paths 路径片段的序列
- 返回值:
const path = require('path');
console.log( path.join('a', 'b', 'c') ); // a/b/c
console.log( path.join('a', '/b/', 'c') ); // a/b/c
console.log( path.join('a', '/b/', 'c', 'index.html') ); // a/b/c/index.html
console.log( path.join('a', 'b', '../c', 'index.html') ); // a/c/index.html
console.log(__dirname); // node自带的全局变量,表示当前js文件所在的绝对路径
// 拼接成绩.txt的绝对路径
console.log( path.join(__dirname, '成绩.txt') ); // ------ 最常用的
获取路径中的文件名 —— path.basename()
使用 path.basename() 方法,可以获取路径中的最后一部分,经常通过这个方法获取路径中的文件名,语法格式如下。
path.basename(path[,ext])
- path 必选参数,表示一个路径的字符串。
- ext 可选参数,表示可选的文件扩展名。
- 返回: 表示路径中的最后一部分。
// 找文件名
console.log( path.basename('index.html') ); // index.html
console.log( path.basename('a/b/c/index.html') ); // index.html
console.log( path.basename('a/b/c/index.html?id=3') ); // index.html?id=3
console.log(path.basename('/api/getbooks')) // getbooks
获取路径中的文件扩展名 —— path.extname()
使用 path.extname() 方法,可以获取路径中的扩展名部分,语法格式如下。
path.extname(path)
- path 必选参数,表示一个路径的字符串。
- 返回: 返回得到的扩展名字符串。
// 找字符串中,最后一个点及之后的字符
console.log( path.extname('index.html') ); // .html
console.log( path.extname('a.b.c.d.html') ); // .html
console.log( path.extname('asdfas/asdfa/a.b.c.d.html') ); // .html
console.log( path.extname('adf.adsf') ); // .adsf
http模块
http模块是Node.js官方提供的、用来创建web服务器和客户端的模块。它提供了一系列的方法和属性,例如:
- http.createServer() 方法,用来创建一个web 服务器,从而对外提供web资源。
- http.request() 方法,用来发起 http 网络请求,请求其它web 服务器上的资源。
如果要在JavaScript代码中使用http模块,则需要先导入它。
const http = require('http')
创建最基本的web服务器
创建web服务器的基本步骤
- 导入http模块
- 创建web服务器实例
- 启动服务器
- 为服务器实例绑定request事件,监听客户端的请求
// 1. 导入 http 模块
const http = require('http');
// 2. 创建 web 服务器实例
const server = http.createServer();
// 3. 启动服务器
server.listen(3000, () => {
console.log('my server start work');
});
// 4. 为服务器实例绑定 request 事件,监听客户端的请求
// 当客户端发送请求到服务器的时候,会触发这个事件
server.on('request', () => {
// 这里要处理客户端的请求
console.log('hello html');
});
计算机中的端口号,就好像是现实生活中的门牌号一样。通过门牌号,外卖小哥可以在整栋大楼众多的房间中,准确把外卖送到你的手中。 同样的道理,在一台服务器中,可以运行成百上千个web 服务。此时,通过端口号,客户端发送过来的网络请求,可以被准确地交给端口号对应的web服务进行处理。
request请求对象
只要服务器接收到了客户端的请求,就会调用通过server.on('request', (req, res) => {}) 为服务器绑定的request事件处理函数。 req是客户端提交过来的请求内容,如果想在事件处理函数中,访问与客户端相关的数据或属性,可以使用如下的方式:
接收req参数:
-
获取请求的地址: req.url
-
获取请求方式: req.method
-
获取请求头: req.headers