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

【字号: 日期:2022-09-29浏览:28作者:雯心

问题描述

//文件树/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’);

或者其他方案?

问题解答

回答1:

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

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

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

回答2:

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

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

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

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

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

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

回答3:

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

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

直接拼吧

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

相关文章: