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

Node.js 获取项目根目录


) ^8 k9 _1 }, v- d# s$ U2 C6 A
获取node项目根目录.png

5 V* e2 S, I* L/ T6 s
9 A( L8 J9 s; O介绍一个小技巧获取node.js项目根目录,这个技巧非常实用。$ L9 u( F3 d, p2 v, H5 R1 Y6 y6 H

: d2 Z9 ~8 q8 I) h假设我们的js文件写在server目录中,但是我们的资源文件存储在app/img目录中。如下图,我们需要在server/index.js文件中使用fs读取app/img/favicon.ico文件。
. n$ z* F4 ^4 }0 f# t8 @9 k0 N9 I8 S  m
0 i9 \2 `- G. K( D8 t2 {获取node项目根目录" F2 G# @8 J- S. d$ i0 P1 D
: q) `- g5 X1 T- H1 U# z6 g
在node.js只提供了一个__dirname全局变量。通过__dirname可以获得“C:\wwwroot\yidata\server”。这时需要用到path。1 r" l9 M5 R* c

% F# V: \( S2 X首先import path from 'path'; (ES6)或var path = require('path');
; y- X/ Q. e3 c2 M( @0 b) Q/ |3 y4 D
JavaScript- P" O9 j3 R8 a: _5 K; f

: o3 C4 G! a& ^% y: J, \8 E
  1. path.join(__dirname,'../')
复制代码
2 e5 g3 K1 G6 A1 H, ^' y
即可获取到node.js的项目根目录。3 f9 \! R0 `- p7 ]9 C  F3 F
% Y  ]: m& T2 {" @

9 j2 t, d" d* R$ v
  1. path.join(__dirname,'../app/img/favicon.ico')
复制代码

3 ?5 _% c! G7 V: ]$ e即可获取目标文件。) b" H3 f+ M6 Q/ H4 |+ e0 O- n7 I

2 _( s: }1 M# f( W由上面的例子可知,path.join将多个参数组合成一个 path,因此我们只需要参照路径表示方法合并即可。比如js文件在第三层目录,那么项目根目录就是path.join(__dirname,'../../../')。
! l1 F: ]2 S0 J& N8 Z
# K6 a! z8 ~& Q- T/ YJavaScript6 j( e8 \  \  H0 H" Z0 w
& p$ g1 e* W; w3 V7 X7 n
  1. <p>9 c0 ~/ {5 @8 b! k% c: u- P$ J# x/ W& a
  2. </p><p>path.resolve(".")</p>
复制代码

. p. ~2 @: g8 Z3 A2 A, E也可以直接获取项目根目录,只是使用这个方法在一些情况下存在问题,以前遇到过,想不起来了。
+ o% g( z4 J  ]: j) f& j$ I6 T6 G& Y5 S; f  Y! w& c; [

  L% s% E' J5 `8 D+ v
该帖共收到 1 条回复!
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2017-9-22 16:23:15 | 显示全部楼层

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

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

本版积分规则

美图秀

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

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

GMT+8, 2018-6-24 03:44 , Processed in 0.088342 second(s), 32 queries .

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

© 2015-2017 CMZ Inc.

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