suchen

Heim  >  Fragen und Antworten  >  Hauptteil

node.js 怎么require"绝对路径"?

//文件树

/app
  ├components
  | ├login
  | |    └index.js
  | ├video
  | |    └index.js
  | └posts
  |      └index.js
  ├config
  ├containers
  | ├login
  | |    └index.js
  | ├video
  | |    └index.js
  | └posts
  |      └index.js
  └src

比如我要在containers -> login -> index.js加载components-> login -> index.js,我要这样写:

require('../../components/login');

有没有可以直接加载绝对路径的方法?类似这样:

require('/components/login');

或者其他方案?

伊谢尔伦伊谢尔伦2785 Tage vor690

Antworte allen(3)Ich werde antworten

  • 黄舟

    黄舟2017-04-17 15:33:57

    require() 可以用绝对路径的,可以这样:

    var prefix = '/path/to/app';
    
    require(preifx + '/components/login');

    如楼上所说,不建议使用绝对路径。

    Antwort
    0
  • 巴扎黑

    巴扎黑2017-04-17 15:33:57

    你需要明白的一件事情,你的node服务是放在服务端上的,哪里来的唯一的绝对路径(这个跟前端浏览器使用requirejs很一样),只有相对路径(相对当前服务器而言)。

    不过可以结合__dirname 和 path 写一个通用的方法来取路径

    在你nodejs入口文件例如 app.js 里面

    global.prefixPath = path.resolve(__dirname, 'XXX')

    后面使用的时候 就可以 require(global.prefixPath + 'XXX')

    https://nodejs.org/dist/lates...

    Antwort
    0
  • PHP中文网

    PHP中文网2017-04-17 15:33:57

    node在执行的过程中会有一个变量和一个可以产生路径的方法:

    process.cwd() 是当前执行node命令时候的文件夹地址
    __dirname 是被执行的js 文件的地址

    直接拼吧

    require('f:/code/components/login');
    require(path.resolve(process.cwd(), '../../components/login'));
    // ...

    Antwort
    0
  • StornierenAntwort