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

Node.js 获取项目根目录

0 [& C0 E& I# l6 Z# D/ ]$ U7 [( K
获取node项目根目录.png
8 b# E. J& [6 H  m
" Q: ]2 R/ N" V' W, l% w
介绍一个小技巧获取node.js项目根目录,这个技巧非常实用。+ q( j2 V+ ~2 w8 K6 F2 M/ ?( u

5 x+ H8 o) Q" K假设我们的js文件写在server目录中,但是我们的资源文件存储在app/img目录中。如下图,我们需要在server/index.js文件中使用fs读取app/img/favicon.ico文件。
: f6 @; ?! z( u. C. [: M
# V) Q( L1 c. A$ z% M# |. g获取node项目根目录* l4 o3 E7 u1 ~4 S& C3 ~+ p/ x
2 l' N# V% G8 w+ [! O6 x; }
在node.js只提供了一个__dirname全局变量。通过__dirname可以获得“C:\wwwroot\yidata\server”。这时需要用到path。3 V' f" u) x# S/ J' O. |3 g, c
0 t" a, [' X( c
首先import path from 'path'; (ES6)或var path = require('path');
% q; \# P5 ]4 v
4 k! ~/ m1 z: G" o% ?* E, \: [JavaScript
% F6 ?- E6 M1 m- j: s# D8 q0 b# P$ }' \' H3 x. O
  1. path.join(__dirname,'../')
复制代码

- Y( n0 c, w% ^9 W) l1 X即可获取到node.js的项目根目录。
* A% I; y2 @, e+ i8 p  n1 L1 h3 L4 X+ p
) ~4 a( A/ ]; F" @9 m6 H/ ~2 r
  1. path.join(__dirname,'../app/img/favicon.ico')
复制代码

1 v+ A5 e9 |# P, [+ u即可获取目标文件。
% h4 S+ [( I" ^3 j
: [5 q/ I2 S! @- x- i0 p; r" L由上面的例子可知,path.join将多个参数组合成一个 path,因此我们只需要参照路径表示方法合并即可。比如js文件在第三层目录,那么项目根目录就是path.join(__dirname,'../../../')。
8 p! p* v! m; \0 D- g2 z; \% P( }4 Q3 d: E5 c3 [+ l
JavaScript+ L4 I  T1 ?0 j. u& X

" v; Z7 E3 i& G, X1 W7 Q5 U
  1. <p>( @( p- s4 U0 T8 D) Z3 U
  2. </p><p>path.resolve(".")</p>
复制代码

3 ^$ Y6 o) [5 R5 R4 r* a也可以直接获取项目根目录,只是使用这个方法在一些情况下存在问题,以前遇到过,想不起来了。. X7 L0 \8 M: _# @8 m/ I

; t/ S4 @, y% \3 Z7 K& ?7 E) q, C1 O  [: Y5 N/ F. c
该帖共收到 1 条回复!
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2017-9-22 16:23:15 | 显示全部楼层

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

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

本版积分规则

美图秀

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

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

GMT+8, 2019-7-24 12:49 , Processed in 0.096091 second(s), 32 queries .

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

© 2015-2017 CMZ Inc.

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