【发布时间】:2020-08-05 19:28:31
【问题描述】:
两天前我一直在为不应该阻止我的事情苦苦挣扎。
基本上,我正在构建一个使用 Express 的 nodeJS 应用程序。 在我的主文件(位于我的根文件夹中)中,我正在导出一些变量/常量,出于示例的目的,我将它们替换为:
// ./index.js
const test = 'test'
module.exports = { test }
... some express initialization/routers
然后我有另一个文件,我想在其中使用“测试”变量,所以我需要我的主文件:
// ./aaa/bbb/ccc/test.js
const { test } = require('../../../index);
const myRouter = require('express').Router();
myRouter.get('/', function (req, res){
console.log(test) // undefined
})
我真的不知道为什么当我正确导出它并通过我的 require 语句“导入”它时它会未定义。
我还尝试“安慰”我应该收到的整个对象,但它是空的:{}
编辑:我正在执行的“主”脚本确实是 index.js,但我非常怀疑这是问题的原因
我无法真正找出问题所在,我需要导出一些变量以在我的项目中访问它们
谢谢!
【问题讨论】:
-
如果您在 myRouter 之外进行 console.log 测试,它是否有效?
-
我忘了提,我也试过了,但我仍然得到一个未定义/空的对象(尝试 console.log 导出器变量和整个对象,没有成功)
-
导出前 index.js 的内部情况如何?那个console.log也是未定义的吗?
-
在 index.js 中,如果我使用 console.log(test),它正在工作,真的无法找出那些空的导出对象可能是什么问题......
-
这里没什么可做的。它看起来是正确的。也许只是为了好玩试试
module.exports.test = test。我敢肯定有一些非常简单的东西。您还可以在 codesandbox.io 中创建一个模拟,这将为我们提供更多的工作。
标签: node.js node-modules