node核心模块

本文深入探讨了Node.js中path、URL和OS三个核心模块的功能和用法,包括路径操作、URL解析生成及系统信息获取等关键技术点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. path 模块

如何去得知自己的当前位置和目标文件的位置,这是作为对本地文件进行操作的基础

Path模块引进的是一个对象, 内部有很多的属性方法
在使用前首先需要引入 path 模块 const path = require('path')

方法

__dirname:当前文件所在目录的名称( 绝对路径 )
__filename:当前文件所在的目录名称 + 文件名称( 绝对路径 )

const path = require('path')
console.log(__dirname)		// F:\框架练习\node核心模块
console.log(__filename)		// F:\框架练习\node核心模块\01-path模块.js

path.join(路径1, 路径2):连接路径。该方法的主要用途在于,会正确使用当前系统的路径分隔符,Unix系统是”/“,Windows系统是”\“。

const path = require('path')
console.log(path.join(__dirname,src)) // F:\框架练习\node核心模块\src

path.resolve():方法用于将相对路径转为绝对路径。
它可以接受多个参数,依次表示所要进入的路径,直到将最后一个参数转为绝对路径。如果根据参数无法得到绝对路径,就以当前所在路径作为基准。除了根目录,该方法的返回值都不带尾部的斜杠。

const path = require('path')
console.log(path.join(__dirname,src,js,es6)) // F:\框架练习\node核心模块\src\js\es6

path.relative():接受两个参数,这两个参数都应该是绝对路径。该方法返回第二个路径相对于第一个路径的那个相对路径。

const path = require('path')
console.log(path.relative(__dirname, path.join(__dirname,'src','index.html'))) // src\index.html

path.parse() 返回路径各部分信息

const path = require('path')
console.log(path.parse(__dirname))
/*
{
  root: 'F:\\',
  dir: 'F:\\框架练习',
  base: 'node核心模块',
  ext: '',
  name: 'node核心模块'
}
*/

2. URL 模块

url模块用于生成和解析URL。该模块使用前,必须加载。const url = require('url')
url 模块提供了两套 API 来处理 URL:一个是旧版本遗留的 API,一个是实现了 WHATWG标准的新 API。
旧api就是url.parse里面的部分
新api就是URL里面的部分

建议只使用新API const {URL} = require('url')

3. OS 模块

os模块提供与操作系统相关的方法。
当然 使用前要加载 const os = require('os')

const os = require('os')
console.log(os)
/**
*{
*  arch: [Function: arch] {
*    [Symbol(Symbol.toPrimitive)]: [Function (anonymous)]
*  },
*  cpus: [Function: cpus],
*  endianness: [Function: endianness] {
*    [Symbol(Symbol.toPrimitive)]: [Function (anonymous)]
*  },
*  freemem: [Function: getFreeMem] {
*    [Symbol(Symbol.toPrimitive)]: [Function (anonymous)]
*  },
*  getPriority: [Function: getPriority],
*  homedir: [Function: hidden] {
*    [Symbol(Symbol.toPrimitive)]: [Function (anonymous)]
*  },
*  hostname: [Function: hidden] {
*    [Symbol(Symbol.toPrimitive)]: [Function (anonymous)]
*  },
*  loadavg: [Function: loadavg],
*  ...
* }
*/
方法

os.arch():返回计算机的架构

console.log(os.arch()) // x64

os.networkInterfaces():返回一个对象,包含只有赋予网络地址的网络接口

console.log(os.networkInterfaces())
/**
{
  'VMware Network Adapter VMnet1': [       
    {
      address: 'fe80::6525:971e:a582:fb2a',
      netmask: 'ffff:ffff:ffff:ffff::',    
      family: 'IPv6',
      mac: '00:50:56:c0:00:01',
      internal: false,
      cidr: 'fe80::6525:971e:a582:fb2a/64',
      scopeid: 5
    },
    {
      address: '192.168.111.1',
      netmask: '255.255.255.0',
      family: 'IPv4',
      mac: '00:50:56:c0:00:01',
      internal: false,
      cidr: '192.168.111.1/24'
    }
  ],
  'VMware Network Adapter VMnet8': [       
    {
      address: 'fe80::62:812a:cc69:de0b',  
      netmask: 'ffff:ffff:ffff:ffff::',    
      family: 'IPv6',
      mac: '00:50:56:c0:00:08',
      internal: false,
      cidr: 'fe80::62:812a:cc69:de0b/64',
      scopeid: 2
    },
    {
      address: '192.168.10.1',
      netmask: '255.255.255.0',
      family: 'IPv4',
      mac: '00:50:56:c0:00:08',
      internal: false,
      cidr: '192.168.10.1/24'
    }
  ],
  WLAN: [
    {
      address: 'fe80::b1fd:63a6:69ad:13ab',
      netmask: 'ffff:ffff:ffff:ffff::',
      family: 'IPv6',
      mac: '68:ec:c5:5c:ae:4f',
      internal: false,
      cidr: 'fe80::b1fd:63a6:69ad:13ab/64',
      scopeid: 21
    },
    {
      address: '192.168.2.175',
      netmask: '255.255.255.0',
      family: 'IPv4',
      mac: '68:ec:c5:5c:ae:4f',
      internal: false,
      cidr: '192.168.2.175/24'
    }
  ]
}
*/

os.platform():返回一个字符串,指定node.js运行的环境

console.log(os.platform()) // win32

os.release():返回操作系统的版本号

console.log(os.release()) // 10.0.18362

os.cpus():返回CPU的内核信息

console.log(os.cpus())
/*
[
  {
    model: 'Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz',
    speed: 2808,
    times: {
      user: 48698187,
      nice: 0,
      sys: 50797640,
      idle: 794507562,
      irq: 6138625
    }
  }
]
*/

os.freemem():以整数形式返回空闲的系统内存量

console.log(os.freemem() / 1024 / 1024 /1024) // 8.219837188720703
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值