目录
1. path 路径模块
path 模块是 Node.js 官方提供的、用来处理路径的模块。它提供了一系列的方法和属性,用来满足用户对路径的处理需求。
1.1 导入path模块
path是node.js的一个内置模块,在使用前我们要进行导入操作。和fs模块的导入格式一样,使用require关键字引入。
let path = require('path');
1.2 path.join()路径拼接
path.join可以将多个路径片段拼接成一个完整的路径字符串。path.join方法避免了+号拼接会将. 拼上的问题 join会直接将.去掉 如果是..那就会抵消一层路径 ../../抵消两层路径。这是在node.js中路径拼接最好的一种方法。
const pathstr = path.join('/a', '/b', '/c');
console.log(pathstr); //\a\b\c
const pathstr1 = path.join('/a', '/b', './c');
console.log(pathstr1); //\a\b\c
const pathstr2 = path.join('/a', '/b', '../c');
console.log(pathstr2); //\a\c
1.3 path.basename() 获取路径中的文件名
使用 path.basename() 方法,可以获取路径中的最后一部分,经常通过这个方法获取路径中的文件名。如果写参数二的话就表示将文件的扩展名去掉,只返回文件名。
参数一: | 必选 表示一个路径的字符串 |
参数二: | 可选 表示文件扩展名 |
let fliename = path.basename('index.html');
console.log(fliename);//index.html
// 参数二:不要扩展名 可选参数
let fliename1 = path.basename('index.html','.html');
console.log(fliename1);//index
1.4 path.extname() 获取路径中的扩展名
使用 path.extname() 方法,可以获取路径中的扩展名部分,里面只包含一个参数,而且是必选参数,这个参数是一个表示路径的字符串。
let pathstr3='\a\b\c\index.html'
let ext = path.extname(pathstr3);
console.log(ext);//.html
2.服务器的相关概念
2.1 IP 地址
IP 地址就是互联网上每台计算机的唯一地址,因此 IP 地址具有唯一性。如果把“个人电脑”比作“一台电话”,那么“IP地址”就相当于“电话号码”,只有在知道对方 IP 地址的前提下,才能与对应的电脑之间进行数据通信。在开发期间,自己的电脑既是一台服务器,也是一个客户端,为了方便测试,可以在自己的浏览器中输入 127.0.0.1 这个 IP 地址,就能把自己的电脑当做一台服务器进行访问了。 (localhost)
IP 地址的格式:通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d 都是 0~255 之间的十进制整数。例如:用点分十进表示的 IP地址(192.168.1.1)。
2.2 域名和域名服务器
尽管 IP 地址能够唯一地标记网络上的计算机,但IP地址是一长串数字,不直观,而且不便于记忆,于是人们又发明了另一套字符型的地址方案,即所谓的域名(Domain Name)地址。相当于在手机上给朋友的手机号写了一个备注,你可以通过手机号(ip地址)联系朋友,也可以通过备注(域名)来联系朋友
IP地址和域名是一一对应的关系,这份对应关系存放在一种叫做域名服务器(DNS,Domain name server)的电脑中。使用者只需通过好记的域名访问对应的服务器即可,对应的转换工作由域名服务器实现。因此,域名服务器就是提供 IP 地址和域名之间的转换服务的服务器。
2.3 端口号
计算机中的端口号,就好像是现实生活中的门牌号一样。通过门牌号,外卖小哥可以在整栋大楼众多的房间中,准确把外卖送到你的手中。同样的道理,在一台电脑中,可以运行成百上千个 web 服务。每个 web 服务都对应一个唯一的端口号。客户端发送过来的网络请求,通过端口号,可以被准确地交给对应的 web 服务进行处理。
3. http 模块
http模块是一个内置模块,主要用来搭建web服务器 ,。通过 http 模块提供的 http.createServer() 方法,就能方便的把一台普通的电脑,变成一台 Web 服务器,从而对外提供 Web 资源服务。 但后续真正的开发使用的是第三方express,一般不会用http模块来搭建服务器。
3.1使用http模块搭建服务器的步骤
1. 导入模块
let fs = require('fs');
let http = require('http');
2.创建一个web服务
let web = http.createServer();
3.监听请求
on( )方法里面包含了两个参数; 参数一:请求方法 参数二:回调函数 ;而回调函数中也包含了两个参数 (req, res)参数一:表示请求体,参数二:表示响应体。
(1)请求体中有一些属性我们需要了解一下:
req.url | 获取请求的 URL |
req.method | 获取请求的方法(GET、POST 等) |
(2) /表示根目录: http://127.0.0.1:8080/
(3)为了防止乱码,我们需要修改响应头中的编码: res.setHeader('Content-Type', 'text/html;charset=utf-8')
(4) res.end()是 Node.js 中用于结束响应过程的方法。当使用 Node.js 构建 HTTP 服务器时,可以通过 res.end()
来结束对客户端的响应。
web.on('request', (req, res) => {
// console.log(req);
// 请求体中有一些属性 url method
console.log(req.url, req.method);
// /表示根目录 http://127.0.0.1:8080/
// console.log('监听成功');
// 防止乱码,改响应头中的编码
res.setHeader('Content-Type', 'text/html;charset=utf-8')
if (req.url == '/') {
fs.readFile('./index.html', 'utf-8', (err, data) => {
if (err) return console.log('读取失败' + err.message);
res.end(data)
})
} else if (req.url == '/list.html') {
fs.readFile('./list.html', 'utf-8', (err, data) => {
if (err) return console.log('读取失败' + err.message);
res.end(data)
})
} else {
res.end('404找不到页面')
}
// 服务器响应
// res.end('得到回应')
});
4.启动服务
参数一: | 端口号 |
参数二: | 回调函数 |
web.listen('8080', () => {
console.log('web服务已启动 http://127.0.0.1');
})
5.关闭服务器: ctrl+c可以关闭服务器。