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

/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'));
// ...
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板