OurJS


OurJS-我们的JS, 我们的技术-IT文摘; 专注JS相关领域;
我们热爱编程, 我们热爱技术;我们是高大上, 有品味的码农;

欢迎您订阅我们的技术周刊


我们会向您分享我们精心收集整理的,最新的行业资讯,技术动态,外文翻译,热点文章;
我们使用第三方邮件列表向您推送,我们不保存您的任何个人资料,注重您的隐私,您可以随时退订,

欢迎分享您的观点,经验,技巧,心得

让我们一起找寻程序员的快乐,探索技术, 发现IT人生的乐趣;


本网站使用缓存技术每次加载仅需很小流量, 可在手机中流畅浏览;
如果您发现任何BUG,请即时告知我们: ourjs(at)ourjs.com

Node.JS用Path将相对路径转为绝对路径


分享到


分类 JS学习   关键字 Node.JS   发布 ourjs  1529422909876
注意 转载须保留原文链接,译文链接,作者译者等信息。  
之前介绍过用JavaScript将相对路径转为绝对路径的方法: 

其实在Node.JS中更简单,直接用 path中的方法即可:

var path  = require('path')
var dir    = path.resolve('../oncedir')
测试

$ node test
C:\github\oncedir

Path的其他常用方法:

path.normalize(p)

规范化字符串路径,注意 '..' 和 '.' 部分

多个斜杠会被替换成一个; 路径末尾的斜杠会被保留; Windows 系统上, 会使用反斜杠。

path.join([path1], [path2], [...])

连接所有参数, 并且规范化得到的路径.

参数必须是字符串。在 v0.8 版本非字符串参数会被悄悄忽略。 在 v0.10 及以后版本将会抛出一个异常。

path.join('foo', {}, 'bar')
// 抛出异常
TypeError: Arguments to path.join must be strings

path.resolve([from ...], to)

to 解析为一个绝对路径。

如果to不是一个相对于from 参数的绝对路径,to会被添加到from的右边,直到找出一个绝对路径为止。如果使用from路径且仍没有找到绝对路径时,使用当时路径作为目录。返回的结果已经规范化,得到的路径会去掉结尾的斜杠,除非得到的当前路径为root目录。非字符串参数将被忽略。

另一种思路, 是把它看做一系列 cd 命令.

path.resolve('foo/bar', '/tmp/file/', '..', 'a/../subfile')

相当于:

cd foo/bar
cd /tmp/file/
cd ..
cd a/../subfile
pwd

不同的是,不同的路径不需要存在的,也可能是文件。

path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif')
// 如果当前工作目录为 /home/myself/node,它返回:
'/home/myself/node/wwwroot/static_files/gif/image.gif'

path.isAbsolute(path)

判定path是否为绝对路径。一个绝对路径总是指向一个相同的位置,无论当前工作目录是在哪里。

path.relative(from, to)

Solve从fromto的相对路径。

有时我们有2个绝对路径, 我们需要从中找出相对目录的起源目录。这完全是path.resolve的相反实现,我们可以看看是什么意思:

path.resolve(from, path.relative(from, to)) == path.resolve(to)

 

示例

path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb')
// 返回
'../../impl/bbb'

path.dirname(p)

返回路径中文件夹的名称. 类似于Unix的dirname 命令.

path.dirname('/foo/bar/baz/asdf/quux')
// returns
'/foo/bar/baz/asdf'

path.basename(p, [ext])

返回路径中的最后哦一部分. 类似于Unix 的 basename 命令.

path.basename('/foo/bar/baz/asdf/quux.html', '.html')
// returns
'quux'

path.extname(p)

返回路径中文件的扩展名, 在从最后一部分中的最后一个'.'到字符串的末尾。 如果在路径的最后一部分没有'.',或者第一个字符是'.',就返回一个 空字符串。

path.sep

特定平台的文件分隔工具. '\\' 或者 '/'.

*nix 上的例子:

'foo/bar/baz'.split(path.sep)
// returns
['foo', 'bar', 'baz']

Windows 上的例子:

'foo\\bar\\baz'.split(path.sep)
// returns
['foo', 'bar', 'baz']

path.delimiter

特定平台的路径分隔符, ; 或者 ':'.

*nix 上的例子:

process.env.PATH.split(path.delimiter)
// returns
['/usr/bin', '/bin', '/usr/sbin', '/sbin', '/usr/local/bin']

Windows 上的例子:

console.log(process.env.PATH)
// 'C:\Windows\system32;C:\Windows;C:\Program Files\nodejs\'
process.env.PATH.split(path.delimiter)
// returns
['C:\Windows\system32', 'C:\Windows', 'C:\Program Files\nodejs\']

社区评论 ( Beta版 )
OnceDoc 您自己的企业内容管理系统——文档、流程、知识库、报表、网盘All In One

访问404页面,寻找丢失儿童
 热门文章 - 分享最多
  1. 怎样将Android手机中的照片和视频,通过APP自动同步备份到OnceAir云盘的共享目录中
  2. JS动态滑动切换到页面指定位置
  3. 用CSS和Bootstrap图标制作上下跳动的指示箭头动画效果
  4. Debian/Ubuntu Linux搭建SVN服务器,并设置开机默认启动
  5. nodejs视频教程集合附带源码和笔记
  6. Office365并不是完全基于JavaScript重写的,只是用来构建UI界面
  7. html5弹出式网页mp4视频播放器
  8. Facebook 正在重构 React Native,将重写大量底层
  9. 用 OnceAir 搭建个人Git/Svn/照片备份服务器,每年电费7块钱

 相关阅读 - JS学习
  1. JS动态滑动切换到页面指定位置
  2. 如何通过网页、客户端、手机APP、路由器查找OnceAir NAS网盘的内网访问地址
  3. JavaScript用new Image实现内网服务器端口扫描
  4. 如何收集捕获Node中的未处理的错误异常信息?
  5. Node.JS循环删除非空文件夹及子目录下的所有文件
  6. Node.js 和 JavaScript 的最新版 npm 导致 Linux 系统崩溃,迫使用户重装系统!
  7. 用jQuery创建一个可编辑的SELECT下拉控件(HTML/CSS)
  8. 如何用Bootstrap免费网站模板和OnceAir云盘搭建个人网站服务器
  9. Node.JS高效压缩解压zip文件:将child_process执行结果输入stdout流
  10. Node.JS段点续传:Nginx配置文件分段下载功能实现

 关键字 - Node.JS
  1. 提高NodeJS网站的安全性:Web服务器防黑客攻击技巧
  2. Node.JS用Socket实现FTP Server服务器和Client客户端
  3. [译]Node.js 框架比较: Express vs. Koa vs. Hapi
  4. Express入门教程:一个简单的博客
  5. 是什么让Node.js比Java更快?为什么NodeJS这么快?
  6. 使用Node.JS批量查找替换目录下文本文件中图片地址内容
  7. 判断Node.JS TCP Socket当前连接状态
  8. Node.JS进程间通讯的几种方法:Redis Publish/Subscribe 和 UDP Socket
  9. Node.JS命令行或批处理中更改Linux用户密码
  10. Node.JS用Path将相对路径转为绝对路径

 欢迎订阅 - 技术周刊

我们热爱编程, 我们热爱技术; 我们是高端, 大气, 上档次, 有品味, 时刻需要和国际接轨的码农; 欢迎您订阅我们的技术周刊; 您只需要在右上角输入您的邮箱即可; 我们注重您的隐私,您可以随时退订.
加入我们吧! 让我们一起找寻码农的快乐,探索技术, 发现IT人生的乐趣;


 关注我们

我们的微信公众号: ourjs-com
打开微信扫一扫即可关注我们:
IT文摘-程序员(码农)技术周刊

ourjs官方微信号