Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 避免在nodejs中使用../../../require_Node.js_Express - Fatal编程技术网

Node.js 避免在nodejs中使用../../../require

Node.js 避免在nodejs中使用../../../require,node.js,express,Node.js,Express,我正在创建一个express 4项目,我的许多文件都嵌套在文件夹中。不幸的是,我使用了很多: var x = require('../../../../file'); 我想如果我可以访问项目的基本url,我可以避免这种情况,但是我发现使用全局变量不是一个好主意。解决此问题的最佳方法是什么?如果您需要节点进程从中启动的根脚本的目录,可以如下所示: var root = require.main.filename.slice(0,require.main.filename.lastIndexOf(

我正在创建一个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
作为你的“基本url”。

var root=require('path')。dirname(require.main.filename)
可能更好。好建议我会把它添加到回答中。这真的很有效。谢谢