path

参考文档:http://nodejs.cn/api/path.html

const {normalize} = require('path');  // ES6语法
// 相当于 const normalize = require('path').normalize; // 标准化路径
console.log(normalize('/usr///local/bin'));
console.log(normalize('/usr/local/../bin'));

输入 node normalize.js ,可以修正路径

/usr/local/bin

/usr/bin

路径拼接:

const {join} = require('path');
console.log(join('/usr/', 'local', 'bin'))

/usr/local/bin

将相对路径转化为绝对路径:

const {resolve} = require('path');
console.log(resolve('./'));

/home/dex/web/nodejs

basename,dirname,extname

const {basename, dirname, extname} = require('path');
const filePath = '/usr/local/bin/no.txt'; console.log(basename(filePath));
console.log(dirname(filePath));
console.log(extname(filePath));

no.txt

/usr/local/bin

.txt

parse与format

const {parse, format} = require('path');
const filePath = '/usr/local/node_modules/n/iloveu.json';
const ret = parse(filePath);
console.log(ret);
const path = format(ret);
console.log(path);

{ root: '/',

dir: '/usr/local/node_modules/n',

base: 'iloveu.json',

ext: '.json',

name: 'iloveu' }

/usr/local/node_modules/n/iloveu.json

与操作系统有关的一些 sep delimiter win32 posix

const {sep, delimiter, win32, posix} = require('path');
console.log('sep:', sep);
console.log('win sep:', win32.sep);
console.log('posix sep:', posix.sep);
console.log('PATH:', process.env.PATH);
console.log('delimiter:', delimiter);
console.log('win delimiter:', win32.delimiter);
console.log('posix delimiter:', posix.delimiter);

sep: /

win sep:

posix sep: /

PATH: /home/dex/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

delimiter: :

win delimiter: ;

posix delimiter: :

delimiter: // 分割符,windows下是;(分号)Linux是:(冒号)

const path = require('path');

console.log('__dirname:', __dirname);
console.log('process.cwd():', process.cwd());
console.log('./ :', path.resolve('./'));

输入如下命令:node ./nodejs/path.js

__dirname: /home/dex/web/nodejs

process.cwd(): /home/dex/web

./ : /home/dex/web

path:

  • __dirname,__filename总是返回文件的绝对路径
  • process.cwd()总是返回执行node命令所在文件夹

相对路径./

  • 在require方法中总是相对当前文件所在文件夹
  • 在其他地方和process.cwd()一样,相对node启动文件夹

NodeJS基础API-path相关的问题basename,extname,dirname,parse,format,sep,delimiter,win32,posix的更多相关文章

  1. Node.js实战项目学习系列(5) node基础模块 path

    前言 前面已经学习了很多跟Node相关的知识,譬如开发环境.CommonJs,那么从现在开始要正式学习node的基本模块了,开始node编程之旅了. path path 模块提供用于处理文件路径和目录 ...

  2. Nodejs基础:路径处理模块path总结

    模块概览 在nodejs中,path是个使用频率很高,但却让人又爱又恨的模块.部分因为文档说的不够清晰,部分因为接口的平台差异性. 将path的接口按照用途归类,仔细琢磨琢磨,也就没那么费解了. 获取 ...

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

    webpack中常用的: var path = require('path') 是nodejs中的path模块,介绍一下webpack中常用的几个path模块的方法: 应用node环境的时候,这个pa ...

  4. 前端知识体系-NodeJS相关】NodeJS基础知识全面总结

    NodeJS基础知识 1. Node的全局对象和全局变量 1.1 全局对象:所有模块都可以调用的 global:表示Node所在的全局环境,类似于浏览器的window对象. process:该对象表示 ...

  5. nodejs 基础篇整合

    nodeJs 基础篇整合 最近有朋友也想学习nodeJs相关方面的知识,如果你是后端想接近前端,node作为一门跑在服务端的JS语言从这里入门再好不过了.如果你正好喜欢前端,想走的更高,走的更远.no ...

  6. Linux高性能server编程——Linux网络基础API及应用

     Linux网络编程基础API 具体介绍了socket地址意义极其API,在介绍数据读写API部分引入一个有关带外数据发送和接收的程序,最后还介绍了其它一些辅助API. socket地址API 主 ...

  7. Linux 高性能服务器编程——Linux网络编程基础API

    问题聚焦:     这节介绍的不仅是网络编程的几个API     更重要的是,探讨了Linux网络编程基础API与内核中TCP/IP协议族之间的关系.     这节主要介绍三个方面的内容:套接字(so ...

  8. nodejs入门API之url模块+querystring模块

    关于URL的一些基础内容 URL模块的API解析 URL的参数URLSearchParams类 querystring模块 一.关于URL的一些基础内容 1.1 定义: 在WWW上,每一信息资源都有统 ...

  9. [转]Nodejs基础中间件Connect

    Nodejs基础中间件Connect 从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的J ...

随机推荐

  1. 调试接口,返回的json数据,我定义了一个类,用来序列化,其中有一个字段定义为string 然后序列化的时候报错

    调试接口,返回的json数据,我定义了一个类,用来序列化,其中有一个字段定义为string 然后序列化的时候报错 在需要解析的类型类上加上声明 eg:

  2. Linux下处理^M字符

    很多时候windows环境中编辑过的文件,在Linux下经常会出现^M字符,可以通过以下方式处理该字符. vim命令打开文件,然后在vim命令模式下输入以下内容: :%s/^M//g特别注意:注意^M ...

  3. Linux修改war包中文件

    rm -rf /tmp/wiq.warcp /u02/wms_dev/wiq-app/wars/wiq.war /tmpcd /tmp jar xvf wiq.war vim WEB-INF/clas ...

  4. PHP正则表达式 - 元字符

    下表包含了元字符的完整列表以及它们在正则表达式上下文中的行为: 字符 描述 \ 将下一个字符标记为一个特殊字符.或一个原义字符.或一个 向后引用.或一个八进制转义符.例如,'n' 匹配字符 " ...

  5. 基于JAVA的设计模式之单例模式

    概念 于大二上学期面向对象C++期中考试中有这么道题:一个Computer有多个USB插口,那么意味着这台电脑可以插多个鼠标,但是无论你如何拔插多少个鼠标,桌面上的鼠标一直只显示一个,且多个硬件鼠标都 ...

  6. zuul的本地跳转

  7. Author: Jan Odvarko, www.janodvarko.cz

    /*  * Author: Jan Odvarko, www.janodvarko.cz */ FBL.ns(function() { with (FBL) { function HelloWorld ...

  8. 【Unity3D】射箭打靶游戏(简单工厂+物理引擎编程)

    打靶游戏:     1.靶对象为 5 环,按环计分:    2.箭对象,射中后要插在靶上:    3.游戏仅一轮,无限 trials: 增强要求:  添加一个风向和强度标志,提高难度 游戏成品图: U ...

  9. excel如何显示多个独立窗口

    https://blog.csdn.net/tigaobansongjiahuan8/article/details/76861084

  10. selenium+python之自动换测试用例执行

    1.一个用例为一个完整的场景,从用户登陆系统到最终退出并关闭浏览器. 2.一个用例只验证一个功能点,不要试图在用户登陆系统后把所有的功能都验证一遍. 3.尽可能少的编写逆向逻辑用例.一方面因为逆向逻辑 ...