加入我们 登录
 找回密码
 加入我们
搜索

Node.js 获取项目根目录

) p! a) b% `* {" D, l
获取node项目根目录.png
) T8 `& A5 E1 Z9 c7 j& _7 N
" G3 r% p( s3 o! W3 M' E' A
介绍一个小技巧获取node.js项目根目录,这个技巧非常实用。  U5 D  c/ u4 f+ d) ^

' Z3 m5 t2 a- A* K0 N! N' Y- _假设我们的js文件写在server目录中,但是我们的资源文件存储在app/img目录中。如下图,我们需要在server/index.js文件中使用fs读取app/img/favicon.ico文件。, _4 V7 B' J; _2 \

1 d& f% c9 X# f9 M获取node项目根目录" K5 D( N) R$ B, W8 A+ k/ [# @
* d  O) a  r: L' @, g
在node.js只提供了一个__dirname全局变量。通过__dirname可以获得“C:\wwwroot\yidata\server”。这时需要用到path。
" p5 ~% t& ^, b
! v6 d2 F8 c7 w8 K( B1 F5 x) _首先import path from 'path'; (ES6)或var path = require('path');1 P' B% a5 ^6 l! h

9 I9 d. w$ t* p4 L3 VJavaScript
+ |$ ]1 p+ ~0 ~6 _8 A
, p$ b7 Y6 k: t
  1. path.join(__dirname,'../')
复制代码

6 D0 l- g/ u% I/ b9 z2 k2 T即可获取到node.js的项目根目录。9 k$ k' ~. ~; Y* g" e

$ B+ @- d; X' P- X9 q
) [( K, O: S% g+ l4 d, `0 _
  1. path.join(__dirname,'../app/img/favicon.ico')
复制代码
8 D. j* i2 v) B( X: q
即可获取目标文件。# H; d- T, Z# @4 {5 P1 }; J) d
/ R7 g2 O& Y- B9 r8 M
由上面的例子可知,path.join将多个参数组合成一个 path,因此我们只需要参照路径表示方法合并即可。比如js文件在第三层目录,那么项目根目录就是path.join(__dirname,'../../../')。
5 i7 D2 r' \3 a$ n. G* d7 U0 V' L5 N( H: l. x" y$ n0 r; p
JavaScript4 g- m) i- [1 \6 y/ a0 T5 P1 i

# `- Q/ I0 H9 L3 \! B4 ?: `
  1. <p>
    ! p, i9 O: {0 g) [+ ?; z5 B) u
  2. </p><p>path.resolve(".")</p>
复制代码

6 W$ w# g# \9 Y- e. a2 k9 D+ `  I也可以直接获取项目根目录,只是使用这个方法在一些情况下存在问题,以前遇到过,想不起来了。
" c, o: g& A/ @( }: a) k
, y7 e) Q4 t% W+ @- K9 U6 m2 Y, H- y2 l. J- B+ r6 K
该帖共收到 1 条回复!
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2017-9-22 16:23:15 | 显示全部楼层

回复 | 支持 2 | 反对 0 使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

美图秀

    • Javascript精品教程(总贴)
    • Node.js 获取项目根目录
    • 机械键盘改灯 无灯位键盘加灯教程
    • 【晒桌面】 且看“设计狗” 乱入科技界
    • keil 使用printf函数输出打印结果

关于我们|Archiver|手机版|小黑屋|创梦者-与梦想者共创未来 ( 晋ICP备13003410号 )

GMT+8, 2018-2-23 10:05 , Processed in 0.077213 second(s), 32 queries .

本站由: 腾讯云 提供云服务器 Discuz! 提供后端支持

© 2015-2017 CMZ Inc.

快速回复 返回顶部 返回列表