【发布时间】:2015-01-04 08:30:33
【问题描述】:
我正在创建一个 express 4 项目,我的许多文件都嵌套在文件夹中。不幸的是,我使用了很多:
var x = require('../../../../file');
我想如果我可以访问项目的基本 url,我可以避免这种情况,但我发现使用全局变量不是一个好主意。解决这个问题的最佳方法是什么?
【问题讨论】:
我正在创建一个 express 4 项目,我的许多文件都嵌套在文件夹中。不幸的是,我使用了很多:
var x = require('../../../../file');
我想如果我可以访问项目的基本 url,我可以避免这种情况,但我发现使用全局变量不是一个好主意。解决这个问题的最佳方法是什么?
【问题讨论】:
如果你想要节点进程启动的根脚本的目录,你可以这样获取:
var root = require.main.filename.slice(0,require.main.filename.lastIndexOf('/'))
或者,正如@ChiChou 建议的那样:
var root = require('path').dirname(require.main.filename)
这假定主脚本(或任何其他需要您的代码的脚本)从根目录运行。
您可以将此root 用作您的“基本网址”。
【讨论】:
var root = require('path').dirname(require.main.filename) 可能会更好。