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

Node.js 获取项目根目录


. H8 @- x& O* Y, L5 X) P0 J
获取node项目根目录.png

, x& |" L$ u- R' L' C
3 i& j8 B0 Z) w; Z8 R介绍一个小技巧获取node.js项目根目录,这个技巧非常实用。
8 X: E! R$ ~; j% V: V0 U
6 l# J0 B$ z5 Z3 X% k/ e假设我们的js文件写在server目录中,但是我们的资源文件存储在app/img目录中。如下图,我们需要在server/index.js文件中使用fs读取app/img/favicon.ico文件。
, O% i, w( F6 e/ F8 O( u
& Y+ h. |  H; s" a5 d9 R/ w2 q获取node项目根目录/ c1 n0 m1 a( G. i9 r' D

; y0 h2 W% U) L. X1 Q2 J* ^在node.js只提供了一个__dirname全局变量。通过__dirname可以获得“C:\wwwroot\yidata\server”。这时需要用到path。
  b; j7 g' r& ]) J3 U4 E4 z5 F3 M0 y, l9 I
首先import path from 'path'; (ES6)或var path = require('path');# t: P* F1 {* z2 `9 q! b9 C1 {0 X

  `% T& |# E: a) X- y# c2 FJavaScript: n* ^1 S3 |+ K; z  ~7 y0 Y. F5 B

8 e- a" g0 q* k! @
  1. path.join(__dirname,'../')
复制代码

5 p2 V  X% x" `" r3 b  O/ M即可获取到node.js的项目根目录。
/ `' J' d  B: h6 C3 w/ s" P
5 Y0 J) W# j( P+ R; e) i# G
& D6 c# |$ v' _+ y9 ]0 b
  1. path.join(__dirname,'../app/img/favicon.ico')
复制代码
# o* f+ S# C! ^: m0 F# m; v1 h4 q5 A
即可获取目标文件。
- A; p0 h$ ?# G& @
. q- v1 q( J4 ]+ t2 K3 j- F5 y由上面的例子可知,path.join将多个参数组合成一个 path,因此我们只需要参照路径表示方法合并即可。比如js文件在第三层目录,那么项目根目录就是path.join(__dirname,'../../../')。
0 f! @$ [' U, ]! Z$ h4 ]. F; N, n
- j# J* k( u+ f& i( ]8 OJavaScript
( Z' l& ~. |' y* O# T( K7 n; F' ~6 {$ u2 }
  1. <p>; p4 f" N3 V/ v: @4 t* _4 W5 G- v
  2. </p><p>path.resolve(".")</p>
复制代码

7 j$ B! G7 y3 f也可以直接获取项目根目录,只是使用这个方法在一些情况下存在问题,以前遇到过,想不起来了。
4 S  |0 Q' V  r% N7 Z, {3 m1 j( F: u

& G! e) z" m) e- q
该帖共收到 1 条回复!
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2017-9-22 16:23:15 | 显示全部楼层

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

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

本版积分规则

美图秀

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

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

GMT+8, 2019-2-21 22:30 , Processed in 0.159318 second(s), 32 queries .

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

© 2015-2017 CMZ Inc.

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