找不到所需的文件

我有一个节点文件用于快速,它不能在一个函数中看到所需的文件,但是当设置断点时,我可以看到它在声明后立即定义。 另外一个variablesauth在两个地方都可以看到

 var auth = require('../utilities/auth'); var index = require('../utilities/index'); // here, i set a break point and index is defined module.exports = { create : function (req, res) { // in here, i set a breakpoint, index is not defined 

而且我很确定我有正确的path。 上面的代码片段来自user.js 在这里输入图像描述

一个更完整的片段在这里。 https://gist.github.com/foobar8675/eb5ec78461dff59a80d1

任何build议表示赞赏!

在这种情况下,我会对使用名称index.js保持警惕,因为它在解决模块时具有特殊意义。 当需要传递文件夹名称时,通常会调用index.js

 var utilities = require('../utilities'); 

不能确定,但​​尝试将文件的名称更改为其他像indexhelper.js ,看看会发生什么。

更新

我刚刚进行了一个testing,以回应你的截屏,我想我现在可以看到你的问题。 你不可见的requirevariables在module.exports范围内不被引用,因此不被捕获。 我只是用下面的代码片段进行了testing,在debugging器中看到了完全相同的现象。

 var mod1 = require("./mod1"); var mod2 = require("./mod2"); //both mod1 and mod2 are visible here module.exports = { init : function() { //mod1 not referenced so only mod2 //is available as a local scope variable in debugger mod2.init(); console.log("module 3 initialised") } }; 

Webstorm调试器快照

所以总结。 我真的不觉得你在这里有问题。 只要引用module.exports中的variables,它就会被捕获。

另请参见: 在node.js中存储模块variables的范围是什么?