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

Node.js 获取项目根目录


/ k2 Q+ g, z) y! N% B/ w7 c+ \; T, V
获取node项目根目录.png

  Q: W8 @/ x* p* f( Y6 c* }) a, D0 Z9 @
介绍一个小技巧获取node.js项目根目录,这个技巧非常实用。
! ^+ v, [, @0 k6 d6 c+ Z6 i( {. s/ }) |5 y8 x
假设我们的js文件写在server目录中,但是我们的资源文件存储在app/img目录中。如下图,我们需要在server/index.js文件中使用fs读取app/img/favicon.ico文件。
0 _2 c- _3 W$ W* J, B- w# J" m, O7 f+ y8 m* p6 E
获取node项目根目录
+ Z2 ^. |6 Z( ^# [6 Y
, s2 k+ `4 }! |在node.js只提供了一个__dirname全局变量。通过__dirname可以获得“C:\wwwroot\yidata\server”。这时需要用到path。, u$ q' f, q$ R7 X

1 g0 J! G* r9 `6 _3 J& C/ F首先import path from 'path'; (ES6)或var path = require('path');
# Z0 ~: B, m4 k% E# _" m. p2 _, W3 e8 g
JavaScript0 \+ t+ J$ Q/ z9 F2 x1 t1 W
% r5 @: `' m. b. J
  1. path.join(__dirname,'../')
复制代码

% @) O# c1 Y: _: r6 U0 J) N2 ]即可获取到node.js的项目根目录。" ~- O+ e4 `& {' f1 n

6 G) B$ j+ s1 B/ s. \" i+ u
3 s0 ~. {( _: R/ A" T; ]
  1. path.join(__dirname,'../app/img/favicon.ico')
复制代码

& z& e8 d% @9 {: A/ P即可获取目标文件。
2 F, B* y3 R: \- k$ ~( D
, \8 `- y7 z( Q0 d( ?由上面的例子可知,path.join将多个参数组合成一个 path,因此我们只需要参照路径表示方法合并即可。比如js文件在第三层目录,那么项目根目录就是path.join(__dirname,'../../../')。
& t, D3 M+ A0 Q4 ^! d8 P
* N, |% F9 H+ r; FJavaScript4 s7 t5 g  A' |1 M, z' l- G
! N- I4 w. [% h  S
  1. <p>
    1 n5 i1 |  x/ T7 H
  2. </p><p>path.resolve(".")</p>
复制代码

6 w' o4 Y" T" N$ F6 B也可以直接获取项目根目录,只是使用这个方法在一些情况下存在问题,以前遇到过,想不起来了。
  @: p: v! k2 _
6 }2 V! p' O/ O- V) n
: f0 `" J6 S% t3 H; A% F* o" }
该帖共收到 1 条回复!
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2017-9-22 16:23:15 | 显示全部楼层

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

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

本版积分规则

美图秀

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

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

GMT+8, 2018-12-16 11:58 , Processed in 0.072534 second(s), 32 queries .

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

© 2015-2017 CMZ Inc.

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