node.js 怎么require"绝对路径"?
伊谢尔伦
伊谢尔伦 2017-04-17 15:31:57
0
3
721
//文件树

/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');

或者其他方案?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回覆(3)
黄舟

require() 可以用絕對路徑的,可以這樣:

var prefix = '/path/to/app';

require(preifx + '/components/login');

如樓上所說,不建議使用絕對路徑。

巴扎黑

你需要明白的一件事情,你的node服務是放在服務端上的,哪裡來的唯一的絕對路徑(這個跟前端瀏覽器使用requirejs很一樣),只有相對路徑(相對當前伺服器而言)。

不過可以結合__dirname 和 path 寫一個通用的方法來取路徑

在你nodejs入口檔例如 app.js 裡面

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

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

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

Ty80

node在執行的過程中會有一個變數和一個可以產生路徑的方法:

process.cwd() 是目前執行node指令時候的資料夾位址
__dirname 是被執行的js 檔案的位址

直接拼吧

require('f:/code/components/login');
require(path.resolve(process.cwd(), '../../components/login'));
// ...
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板