3 path核心模块
const path = require('path')
// require('./static/test/test')
{
/*
总结:
__dirname: 获得当前执行文件所在目录的完整目录名
__filename: 获得当前执行文件的带有完整绝对路径的文件名
process.cwd():获得当前执行node命令时候的文件夹目录名
./: 不使用require时候,./与process.cwd()一样,使用require时候,与__dirname一样
只有在 require() 时才使用相对路径(./, ../) 的写法,其他地方一律使用绝对路径,如下: // 当前目录下
path.dirname(__filename) + '/path.js';
// 相邻目录下
path.resolve(__dirname, '../regx/regx.js');
*/
}
{
//获取路径
console.log('获取路径');
let res = path.dirname('./static/test/test.js') // ./static/test
console.log("res", res)
}
{
//路径拼接
console.log('------------------------------------');
console.log(__dirname); //当前文件的父目录路径 D:\code1\nodeDemo\nodeLearn console.log(path.join(__dirname, '/img/1.png')) // D:\code1\nodeDemo\nodeLearn\img\1.png
console.log(path.join(__dirname, 'img/1.png')) // D:\code1\nodeDemo\nodeLearn\img\1.png
console.log(path.join(__dirname, './img/1.png')) // D:\code1\nodeDemo\nodeLearn\img\1.png
console.log(path.join(__dirname, '../img/1.png')) // D:\code1\nodeDemo\img\1.png console.log('########################################'); console.log(path.resolve(__dirname, '/img/1.png')) // D:\img\1.png
console.log(path.resolve(__dirname, 'img/1.png')) // D:\code1\nodeDemo\nodeLearn\img\1.png
console.log(path.resolve(__dirname, './img/1.png')) // D:\code1\nodeDemo\nodeLearn\img\1.png
console.log(path.resolve(__dirname, '../img/1.png'))// D:\code1\nodeDemo\img\1.png }
{
//获取文件名path.basename(filepath)
let path1 = path.basename('./static/test/test.js') // test.js
let path2 = path.basename('/static/1.txt') // 1.txt
// 第二个参数去掉结果后缀
let path3 = path.basename('./static/test/test.js', '.js') // test 本来是test.js --去掉.js -->test
let path4 = path.basename('./static/test/test.js', '.css') // test.js 去不掉就原样输出
} {
//获取后缀 :path.extname(filepath)
let ext = path.extname('./static/1.txt') //.txt
let ext1 = path.extname('./static/test/test.js') // .js
let ext2 = path.extname('static/test/test.js') // .js
}
{
//提供平台特定的路径片段分隔符: Windows 分隔符上是 \。
let res = './foo/bar/baz'.split(path.sep); //[ './foo/bar/baz' ]
let res1 = 'foo\\bar\\baz'.split(path.sep); //[ 'foo', 'bar', 'baz' ] }
3 path核心模块的更多相关文章
- 核心模块Path
核心模块Path 作用:用于帮助程序员来操作硬盘上的路径. 核心模块注意点:当引用核心模块的时候直接require('模块名'),不需要加任何路径或者后缀. Path中的常用API: dirname( ...
- Nodejs核心模块
(1)全局对象 在浏览器JS中,通常window是全局对象,而nodejs中的全局对象是global,所有全局变量都是global对象的属性. 在nodejs中能够直接访问到的对象通常都是global ...
- node八-核心模块、包
学会查API,远比会几个API更重要. 核心模块意义 -如果只是在服务器运行javascript代码,并没有多大意义,因为无法实现任何功能>读写文件.访问网络 -Node的用处在于它本身还提供可 ...
- node.js中path路径模块的使用
path模块是node.js中处理路径的核心模块.可以很方便的处理关于文件路径的问题. join() 将多个参数值合并成一个路径 const path = require('path'); conso ...
- Hadoop2源码分析-HDFS核心模块分析
1.概述 这篇博客接着<Hadoop2源码分析-RPC机制初识>来讲述,前面我们对MapReduce.序列化.RPC进行了分析和探索,对Hadoop V2的这些模块都有了大致的了解,通过对 ...
- [转]ASP.NET 核心模块配置参考
本文转自:https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/aspnet-core-module?view=aspnetcore ...
- 高性能Web服务器Nginx的配置与部署研究(7)核心模块之主模块的非测试常用指令
1. error_log 含义:指定存储错误日志的文件 语法:error_log <file> [debug|info|notice|warn|error|crit] 缺省:${prefi ...
- Linux学习-核心与核心模块
谈完了整个开机的流程,您应该会知道,在整个开机的过程当中,是否能够成功的驱动我们主机的硬 件配备, 是核心 (kernel) 的工作!而核心一般都是压缩文件,因此在使用核心之前,就得要将他解 压缩后, ...
- 12-《Node.js开发指南》-核心模块
全局对象 Node.js中的全局对象是global 所有全局变量(除了global本身以外)都是global对象的属性 最根本的作用为全局变量的宿主 全局变量 //满足以下条件的是全局变量 a.在最外 ...
随机推荐
- Ubuntu定时执行任务(定时爬取数据)
cron是一个Linux下的后台进程,用来定期的执行一些任务.因为我用的是Ubuntu,所以这篇文章中的所有命令也只能保证在Ubuntu下有效. 1:编辑crontab文件,用来存放你要执行的命令 s ...
- SkyWalking APM8.1.0 搭建与项目集成使用
SkyWalking介绍 SkyWalking是什么? SkyWalking是一个可观测性分析平台和应用性能管理系统,提供分布式跟踪.服务网格遥测分析.度量聚合和可视化一体化解决方案,并支持多种开发语 ...
- Python基础教程,流程控制语句详解
1.程序结构 计算机在解决问题时,分别是顺序执行所有语句.选择执行部分语句.循环执行部分语句,分别是:顺序结构.选择结构.循环结构.如下图: 很多人学习python,不知道从何学起.很多人学习pyth ...
- Python3,逻辑运算符
优先级 ()>not>and>or 1.or 在python中,逻辑运算符or,x or y, 如果x为True则返回x,如果x为False返回y值.因为如果x为True那么or运算 ...
- MySQL回顾
一. 对数据库的操作 1. 创建一个库 create database 库名 create database 库名 character set 编码 创建带有编码的 查看编码: 2. 删除一个库 dr ...
- Vue + ccropper.js裁切图片(vue-cropper)
按原比例裁剪图片并且不失真. 安装: cnpm install vue-cropper --save-dev 使用: <template> <div style="disp ...
- CSDN新版Markdown编辑器(Alpha 2.0版)
Markdown编辑器 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建 ...
- Vue 使用v-for对Object进行遍历
v-for 也可以对Object类型数据进行遍历 value在前, key在后 <div v-for="(value,key) in person"> <p> ...
- scanf函数与getchar函数
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<stdlib.h&g ...
- Java实现token的生成与验证-登录功能
一.token与cookie相比较的优势1.支持跨域访问,将token置于请求头中,而cookie是不支持跨域访问的: 2.无状态化,服务端无需存储token,只需要验证token信息是否正确即可,而 ...