Node.js 避免在nodejs中使用../../../require
我正在创建一个express 4项目,我的许多文件都嵌套在文件夹中。不幸的是,我使用了很多: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(
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)
可能更好。好建议我会把它添加到回答中。这真的很有效。谢谢