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

Node.js 获取项目根目录


& w; d2 o" l2 D4 C  `
获取node项目根目录.png
/ ]' |- ~" {$ X9 |6 _0 b
- C. J9 S: d$ v" |( g: z1 x
介绍一个小技巧获取node.js项目根目录,这个技巧非常实用。
* J5 k$ m( v5 G* u6 y' N
! f9 v  ]- ~- \& L假设我们的js文件写在server目录中,但是我们的资源文件存储在app/img目录中。如下图,我们需要在server/index.js文件中使用fs读取app/img/favicon.ico文件。. s7 ]* B+ i; g) D  L

# W& X6 ]( |7 S/ u, M: ^获取node项目根目录
8 C* b; h2 O% }+ d: x- g) a# Z3 O% K) ^
在node.js只提供了一个__dirname全局变量。通过__dirname可以获得“C:\wwwroot\yidata\server”。这时需要用到path。
4 d  n" {+ ~% z: R
$ m" H) h# r3 c2 l0 |! o) n% e首先import path from 'path'; (ES6)或var path = require('path');7 C* \7 m9 K+ ?' G) \, f
5 _) u) ^8 T, r
JavaScript1 j8 o2 n% G$ ]/ J5 a: p1 V
. v0 p8 J4 ]- y
  1. path.join(__dirname,'../')
复制代码

) _. ^/ p4 j( G# m& Y, H. m  v即可获取到node.js的项目根目录。
0 U; m8 U" v2 i7 w, {6 ~
4 H3 N$ {$ f+ T& O) w/ T/ r/ P. ^2 c% R: {9 [; Y8 t
  1. path.join(__dirname,'../app/img/favicon.ico')
复制代码
  k0 ?, W  _$ o( O, B/ v- u' W
即可获取目标文件。
$ h: s! I) A! P1 F; P7 ?7 F0 R" u8 G' a
由上面的例子可知,path.join将多个参数组合成一个 path,因此我们只需要参照路径表示方法合并即可。比如js文件在第三层目录,那么项目根目录就是path.join(__dirname,'../../../')。- D! S! q- c0 U4 N/ \0 Q; S
. \8 n" U7 p7 Z# B# L9 i* X
JavaScript
# D$ w/ S+ j; P9 B/ C. U( c6 j. {; C* z5 j$ `/ T9 r
  1. <p>
    , F0 K, S1 F+ |
  2. </p><p>path.resolve(".")</p>
复制代码
0 e) c1 M* A8 n: L" l4 p9 A  t
也可以直接获取项目根目录,只是使用这个方法在一些情况下存在问题,以前遇到过,想不起来了。
% v' V) P& R- ?& O2 \
: Y5 O4 c3 V4 [; e, @+ O  A" K3 i, V7 B9 s- j) g
该帖共收到 1 条回复!
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2017-9-22 16:23:15 | 显示全部楼层

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

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

本版积分规则

美图秀

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

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

GMT+8, 2018-4-21 00:26 , Processed in 0.073552 second(s), 32 queries .

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

© 2015-2017 CMZ Inc.

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