node path模块

一、在nodejs中path模块时使用频率很高的模块,其中不乏有很多API写得很模糊,但仔细琢磨下来,也不是很难理解。

1.获取文件所在路径

var path = require(‘path‘);
var test = ‘/test/test1/test2/test.js‘;
//获取文件所在的目录
console.log(path.dirname(test)); //  /test/test1/test2

2.获取路径中的最后一部分

var path = require(‘path‘);
var test = ‘/test/test1/test2/test.js‘;
var test1 = ‘/test/test1/test2/‘;
var test2 = ‘/test/test1/test2‘;

//获取路径中的最后一部分 大部分时间可以用来判断文件名
console.log(path.basename(test)); //test.js
console.log(path.basename(test1)); // test2
console.log(path.basename(test2));//test2

3.获取文件的拓展名

var path = require(‘path‘);
var test = ‘/test/test1/test2/test.js‘;
var file1 = ‘.js‘;
var file2 = ‘js.‘;

//获取文件的拓展名  其实是从最后一个 ‘.‘开始截取的。特别需要注意的是
//如果 ‘.‘开头 则返回 空 , 点结尾返回 ‘.‘
console.log(path.extname(test)); //.js
console.log(path.extname(file1)); // ‘‘
console.log(path.extname(file2)); //‘.‘

二、组合路径

1. 路径的拼接 path.join();

var path = require(‘path‘);
var test = ‘/test/‘;
var test1 = ‘/test1/‘;
var test2 = ‘/test2/‘;

console.log(path.join(test,test1,test2));
// ‘\test\test1\test2‘;
// 为什么会输出这个呢 ? 其实是把 path 拼接起来在normalize一下

2.path.resove(from,to);将to 解析为绝对路径

var path = require(‘path‘);

console.log(path.resolve(‘path.js‘)) //\express\path.js

3.path.parse();路径的解析

var path = require(‘path‘);

//路径的解析
console.log(path.parse(‘path.js‘))
//{ root: ‘‘, dir: ‘‘, base: ‘path.js‘, ext: ‘.js‘, name: ‘path‘ }

三、规范路径 path.normalize();

  • 如果路径为空,返回.,相当于当前的工作路径。
  • 将对路径中重复的路径分隔符(比如linux下的/)合并为一个。
  • 对路径中的...进行处理。(类似于shell里的cd ..
  • 如果路径最后有/,那么保留该/

    var path = require(‘path‘);
    var filepath = ‘/tmp/demo/js/test.js‘;
    
    var index = 0;
    
    var compare = function(desc, callback){
        console.log(‘[用例%d]:%s‘, ++index, desc);
        callback();
        console.log(‘\n‘);
    };
    
    compare(‘路径为空‘, function(){
        // 输出 .
        console.log( path.normalize(‘‘) );
    });
    
    compare(‘路径结尾是否带/‘, function(){
        // 输出 /tmp/demo/js/upload
        console.log( path.normalize(‘/tmp/demo/js/upload‘) );
    
        // /tmp/demo/js/upload/
        console.log( path.normalize(‘/tmp/demo/js/upload/‘) );
    });
    
    compare(‘重复的/‘, function(){
        // 输出 /tmp/demo/js
        console.log( path.normalize(‘/tmp/demo//js‘) );
    });
    
    compare(‘路径带..‘, function(){
        // 输出 /tmp/demo/js
        console.log( path.normalize(‘/tmp/demo/js/upload/..‘) );
    });
    
    compare(‘相对路径‘, function(){
        // 输出 demo/js/upload/
        console.log( path.normalize(‘./demo/js/upload/‘) );
    
        // 输出 demo/js/upload/
        console.log( path.normalize(‘demo/js/upload/‘) );
    });
    
    compare(‘不常用边界‘, function(){
        // 输出 ..
        console.log( path.normalize(‘./..‘) );
    
        // 输出 ..
        console.log( path.normalize(‘..‘) );
    
        // 输出 ../
        console.log( path.normalize(‘../‘) );
    
        // 输出 /
        console.log( path.normalize(‘/../‘) );
    
        // 输出 /
        console.log( path.normalize(‘/..‘) );
    });

四、其中不乏有些没有说清楚,按照API写一遍,加上自己的理解,大概就清楚了。

祝大家端午节快乐。

时间: 2024-11-08 00:06:47

node path模块的相关文章

Node.js Path 模块

var path = require('path'); module.exports = { entry: './app/index.js', output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist') } }; 在看一些配置文件时,如webpack.config.js,经常会看到如上的代码,有时会纠结写法,其实这是Node.js (path 模块)提供的一些用于处理文件路径的小工具. 常用的一些用法有: 方法 描

Node入门教程(8)第六章:path 模块详解

path 模块详解 path 模块提供了一些工具函数,用于处理文件与目录的路径.由于windows和其他系统之间路径不统一,path模块还专门做了相关处理,屏蔽了彼此之间的差异. 可移植操作系统接口(POSIX) 可移植操作系统接口(英语:Portable Operating System Interface,缩写为POSIX),是IEEE为要在各种UNIX操作系统上运行软件,而定义API的一系列互相关联的标准的总称,其正式称呼为IEEE Std 1003,而国际标准名称为ISO/IEC 994

Node.js 初识 Path 模块

Node.js 提供了一些处理 文件/文件夹 路径的公用方法,可以这样引入: var path = require('path'); path.basename(path[, ext])   ---> 返回值:String path.basename() 方法返回路径的最后一部分,与 Unix 的 basename 命令相似 参数: path:String ext:String,可选的文件拓展名,如果提供了ext 参数,则返回值中不包括拓展名 当 path 不是一个字符串或者提供了ext 但不是

Node.js 模块和 NPM

1.模块概念 原生模块:Node.js API 提供的原生模块,原生模块在启动时已经被加载. 文件模块:动态加载模块,由原生模块 module 来实现和完成. 文件模块需要通过调用 require 方法来实现加载. Node.js 对两种模块都有缓存,不会重复开销去加载模块,只读取相应数据. 原生模块的调用 Node.js 的 API require 加载相应的 Node.js 模块,加载成功后返回一个 Node.js 模块对象. 该对象拥有该模块的所有方法和属性. var httpModule

node的模块机制

Node.js模块的实现 之前在网上查阅了许多介绍Node.js的文章,可惜对于Node.js的模块机制大都着墨不多.在后续介绍模块的使用之前,我认为有必要深入一下Node.js的模块机制. CommonJS规范 早在Netscape诞生不久后,JavaScript就一直在探索本地编程的路,Rhino是其代表产物.无奈那时服务端JavaScript走的路均是参考众多服务器端语言来实现的,在这样的背景之下,一没有特色,二没有实用价值.但是随着JavaScript在前端的应用越来越广泛,以及服务端J

node js 模块系统

Node.js模块系统 为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统. 模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的.换言之,一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码.JSON 或者编译过的C/C++ 扩展. 创建模块 在 Node.js 中,创建一个模块非常简单,如下我们创建一个 'hello.js' 文件,代码如下: var hello = require('./hello'); hello.w

3:Node.js模块系统

原文出自:http://www.w3cschool.cc/nodejs/nodejs-module-system.html Node.js模块系统 为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统. 模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的.换言之,一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码.JSON 或者编译过的C/C++ 扩展. 创建模块 在 Node.js 中,创建一个模块非常简单,如下我们创建

介绍nodejs中的path模块的几个方法

webpack中常用的: var path = require('path') 是nodejs中的path模块,介绍一下webpack中常用的几个path模块的方法: 应用node环境的时候,这个path模块的方法经常被用到,处理路径的方法. Nodejs的path模块介绍: 网址:http://nodejs.cn/api/path.html path 模块提供了一些工具函数,用于处理文件与目录的路径.可以通过以下方式使用: const path = require('path'); 或 var

nodejs入门API之path模块

Path模块在各个系统上的差异 Path模块API解析 一.Path模块在各个系统上的差异 path模块提供用于处理文件路径和目录路径的使用工具. let path = require('path') 由于node.js应用程序运行所在的系统不一样会导致path获取的路径风格不一致.比如windows与Unix上的POSIX系统操作接口就会有如下差别: //比如path.basename()获取路径最后一部分的差异 path.basename('C:\\temp\\myfile.html');