首期链接
五. path模块
? path 模块 Node.js 官方提供的用来处理路径的模块 ? path.join() : 将多个路径片段拼接成一个完整的路径字符串 ? path.basename() : 从路径字符串中将文件名解析 出来 const path = require('path')
-
path.join() const pathStr = path.join('/a', '/b/c', '../', './d', 'e')
console.log(pathStr)
const pathStr2 = path.join(__dirname, './files/1.txt')
console.log(pathStr2)
-
path.basename() 获取路径中的最后一部分,经常通过这方法获取路径中的文件名 path.basename(path[, ext])
const fpath = '/a/b/c/index.html'
var fullName = path.basename(fpath)
console.log(fullName)
var nameWithoutExt = path.basename(fpath, '.html')
console.log(nameWithoutExt)
-
path.extname() ? 获取路径中的扩展名部分
const fpath = '/a/b/c/index.html'
const fext = path.extname(fpath)
console.log(fext)
六. http模块
-
http模块 客户端与服务器 消费资源的电脑为客户端, 对外提供网络资源的电脑 服务器 http 模块是Node.js 提供的用来创建web服务器的模块。通过http模块提供的http.createServer()方法 能方便把一台普通电脑变成一台服务器 对外提供资源 使用 需导入 const http = require('http') -
理解 http 作用 安装了web服务软件 IIS Apache等 可成为服务器 -
Node.js中不需要 第三方 web 服务器软件,可以基于Node.js 提供的http模块 ,通过几行代码轻松手写一个 服务器软件从而对外提供web服务 -
服务器相关概念
- ip : 计算机的唯一地址 例如 192.168.2.31
互联网中的每台Web服务器都有自己的ip 例如ping www.baidu.com 可以查看到百度的ip地址 自己电脑是一个服务器也是一个客户端 127.0.0.1 /localhost就把自己当成一个服务器访问了 - 域名和域名服务器 端口
IP 地址与域名 一一对应,对应关系存放在域名服务器(DNS)中 ,域名服务器就是提供ip与域名之间相互转化 端口 每一个web服务对应一个端口号,一个端口一个服务 默认 80 端口 可以省略 -
创建最基本的web服务器
- 创建的步骤 :
导入http模块 --》 创建web服务实例 const server = http.createServer() –》 为服务器实例绑定request事件 监听客户端请求 --》
server.on('request', (req, res)=>{
console.log('someone visit our web server')
})
启动服务器
server.listen(80, ()=>{
console.log('http server running <http://127.0.0.1>')
})
- req 与 res 对象
只要服务器接受到了客户端的请求 就会调用通过 server.on() 为服务器绑定request事件处理函数,如果想在事件处理函数中 访问与客户端相关的数据或属性 与 访问与服务器相关的数据与属性 使用如下方式server.on('request', (req, res) => {
const str = 'Your request url is ${req.url}, and request method is ${req.method}'
console.log(str)
res.end(str)
})
-----------------------------------------
const http = require('http')
const server = http.createServer()
server.on('request', function (req, res){
console.log('浏览器 访问 http://127.0.0.1 vist web server')
console.log(req.url)
console.log(req.method)
res.end('server 响应内容')
})
server.listen(80, function(){
console.log('server running http://127.0.0.1')
})
- 中文乱码
res.end() 发送中文时 出现乱码 此时需要手动设置内容的编码格式server.on('request', function (req, res){
res.setHeader('Content-type', 'text/html; charset=utf-8')
res.end('server 响应内容')
})
-
根据不同的url 响应不同的html内容 实现步骤 获取请求的url
设置默认响应内容 404 not found
判断用户请求是否为/或者/index.html首页
判断用户请求是否为 /about.html 关于页面
设置 Content-Type 响应头 中文乱码
使用 res.end() 内容响应客户端
server.on('request', function (req, res){
const url = req.url
let content = '<h1>404 Not found</h1>'
if(url === '/' || url === '/index.html'){
content = '<h1>index 欢迎 您</h1>'
}else if(url === '/about.html'){
content = '<h1>about 关于页面</h1>'
}
res.setHeader('Content-type', 'text/html; charset=utf-8')
res.end(content)
})
微信 公众号 搜索 Brillint技术圈 回复 “文章” 查看往期技术话题
|