0

我无法从 NodeJS 中的父目录请求。我已经阅读了这篇文章,但仍然无法弄清楚。

node.js 需要来自父文件夹

这是我的文件结构:

-- components/
    -- windows/
        -- index.js
    -- index.js
-- main.js

这是代码:

// /main.js
var components = require("./components")
components.windows.inner()

// /components/index.js
module.exports = {
    windows: require("./windows"),
    foo: "foo",
}

// /components/windows/index.js
var components = require("./..")
module.exports.inner = function() {
    console.log(components.foo)
}

当我运行时main.js,该inner()功能会打印undefined

为什么打印未定义?它不应该打印 foo 吗?我是否遗漏了有关 Node 工作原理的信息?

4

1 回答 1

2

你刚刚建立了一个“循环依赖”。/components/windows/需要/components/,需要/components/windows/,需要……

exports尽管如此,为了解决这些问题,NodeJS 将导出初始化为一个空对象,并在模块初始化后将它们重写为该对象。因此,您可以/components/windows从内部访问,/components/但不能从相反的方式访问。

要删除循环依赖,请移至foo两个模块中都需要的另一个文件。

于 2018-11-11T17:40:58.847 回答