nodejs之path && os && url

path

path模块提供了,提供了处理文件和目录的路径, path在node做服务端免不了要处理文件需要用到 path在打包和输出文件也需要用到

basename

basename 返回字符串,返回的是输入路径的最后的文件名 basename接收一个参数,文件的路径

JavaScript const {basename}=require('name'); console.log(basename('./index.js')); //basename不会管文件存不存在,都会返回最后的文件名

dirname

返回输入路径的目录名

JavaScript const {dirname}=reuqire('path'); console.log(dirname('./index/txt.js')); //打印结果 // ./index

extname

返回输入路径的文件后缀,如果输入的是目录路径则返回目录名称

```JavaScript const {extname} =reuqire('path'); console.log(extname('/index/index.js')); //打印结果 .js console.log(extname('/index')) //打印结果 index

```

format

将输入的路径,拼接为字符串

JavaScript const {format} =require('path'); console.log(format({ root:'/', //未指定dir则使用root base:'index',//未指定base则使用name+ext ext:'.js', //文件后缀 dir:'/home',//文件路径 name:'index'//文件名称 }))

isAbsolute

判断路径是否是绝对路径 只有带盘符才会被该方法认为是绝对路径 JavaScript const {isAbsolute} =require('path'); console.log(isAbsolute('D:/learnANDstudy/Nodejs/path/index')); // true console.log(isAbsolute('./index/index.js')); //false

join

拼接字符串为路径

```JavaScript const {join} =require('path'); console.log(join('D:/','nodejs','index')); //打印结果 // D:/nodejs/index

//我们通常这样使用join,在打包的时候设定输出目录 join(__dirname,'dist') ```

normalize

解析 . 或者 ..这样的路径符号

JavaScript const {normalize}=require('path'); console.log(normalize('./index/../')); //这个路径表示,当前目录下的index的上一层目录下,也就是当前目录 // 打印结果 // ./

parse

解析路径

```JavaScript const {parse} =require('path'); console.log(join('./index/txt.js')) //打印结果 //{ root: '', dir: './index', base: 'txt.js', ext: '.js', name: 'txt' }

```

os

os提供了当前操作系统的方法和属性,os应用于node做服务端,处理cpu负载均衡常用

## arch 操作系统编译nodejs的cpu架构,windows一般是x64编译

JavaScript const os=require('os'); console.log(ops.arch); //打印结果 //x64编译

cpus()

返回当前设备的cpu内核信息 JavaScript const cpus=require('os').cpus(); console.log(cpus);

freemem()

返回空闲的内存数量,以字节为单位 JavaScript const fremem=require('os').freemem(); console.log(freemem);

homedir()

返回当前设备,主用户的路径 windows就是C:/users/Administrator linux是 /root/ JavaScript const homedir=require('os').homedir(); console.log(homedit)

hostname()

返回操作系统的主机名

JavaScript const hostname=require('os').hostname(); console.log(hostname);

platform

返回当前的操作系统 ```JavaScript const platdorm=require('os').platform() console.log(platform)

```

release

返回操作系统的版本比如:win10,win7,win11

JavaScript const release=reuire('os').release(); console.log(release); // 10

url

nodejs提供给我们url模块用于解析和处理url

解析url的作用

1. node做服务端时因为http监听到request事件,但是用户不可能只有一个请求,不同的请求就要请求不同的url,返回不同的数据,我们可以根据url模块去解析用户请求返回数据。
 2. 传统的服务端渲染是,服务端将页面和数据拼接好之后返回给客户端页面,通过url模块解析不同的url返回不同的页面

### 引发思考的问题 先看一下前端渲染页面的历史发展,1.传统的服务端渲染后端拼接好数据后返回页面,但是这种的缺点就是出现bug前后端问题混淆不清,2.通过ajax分离,前端通过ajax请求数据,但是每切换一个页面都要向服务端请求,用户体验不好。3,有了spa单页面,前端开发完成打包后只有一个html和js文件,但是用户的首屏优化不好,而且spa单页面不容易被seo抓取,所以还是要用到服务端渲染,但是如何避免传统服务渲染的缺点,就是在sp单页面的基础上做服务端渲染就有了同构渲染(srr)。

同构渲染(ssr)的流程就是客户端向node服务端发起请求,node服务端接收到请求后解析url找到对应的组件(这就可能用到了url模块和path模块),node通过http(http模块)向服务端发起请求获取数据,将数据注入到组件然后将组件转化为html返回给客户端,此时就解决了spa页面首屏白屏和seo优化的问题

URL类

### hash 获取url的hash值 JavaScript const url=require('url').URL const myurl=new url('https://example.org/foo#bar'); console.log(myurl.hash);//$bar ### host hostname 获取路径的域名 JavaScript const myurl=new url('https://example.org:8080/foo#bar'); console.log(myurl.host);//example.org:8080 consoel.log(myurl.hostname);//example.org //host 获取到的是带端口号的 // hostname 获取的是不带端口号的

port href

port用于获取端口号,href用于获取完整的url

JavaScript const myurl=new url('https://example.org:8080/foo#bar'); console.log(myurl.port);//8080 consoel.log(myurl.href);//https://example.org:8080/foo#bar

protocol

获取和设置url的协议 JavaScript const myurl=new url('https://example.org:8080/foo#bar'); console.log(myurl.protocol);//https myurl.protocol='http'; console.log(myurl.protocol); //http

search

获取和设置url的?后的内容

JavaScript const myurl=new url('https://example.org:8080/foo?name=admin'); console.log(myurl.search); //name=admin myurl.search='name=user'; console.log(myurl.search); // name=user

URLSearchParams

SearchParams的Api提供对url的?后内容进行的增删改查,也可以通过实例化URLSearchParams进行使用

SearchParams的使用

```JavaScript const myurl=new url('https://example.org:8080/foo?name=admin');

// 查 console.log(myurl.searchParams.get('name')); // admin //增 myurl.searchParams.append('pwd','000'); //删 myurl.searchParams.delete('pwd'); //改 ```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值