谢谢您抽出宝贵的时间查看我的问题。首先,我将尽一切可能提供所有必要的信息。
这是我的目录结构。
注意:()星号表示文件。 (-)连字符代表目录。*
* app.js
- config
* modules.js
* functions.js
* info.js
- routes
* root.js
有关文件功能的说明。
config / modules.js通过以下方式列出了所需的模块列表。
module.exports = {
express: require( 'express' ),
bodyParser: require( 'bodyParser' ),
someModule: require( 'someModule' ),
.
.
. *the list goes on*
}
config / functions.js仅有一些函数,如getCurrentTime等,并且运行良好,因此可以忽略;也与该问题无关。
config / info.js具有一些应用程序常量,例如端口,dbURL等。
module.exports.app = {
port: 3000,
db: "mongodb://localhost/dev-db-something"
}
当我在app.js文件中需要config / modules文件时,可以完美地使用变量,并且没有问题。但是,当我在routes / root文件中需要相同的配置/模块时,它给我一个错误,即无法读取未定义的属性“ Router”。
routes / root文件的代码如下,
const modules = require( '../config/modules' );
const express = modules.express;
const router = express.Router();
router.get( '/', (req, res) => {
res.send( 'Welcome!' );
} );
module.exports = router;
我正在为此使用VS Code。当我将鼠标悬停在“模块”上时。在app.js文件中,VS Code通过显示一个悬停弹出窗口向我显示了所需模块的列表。但是,当我在route / root文件中执行相同操作时,它显示了 “ const模块:任何” 悬停弹出窗口。为了更准确地说明问题,此 “ const modules:any” 仅在我添加 “ const router = express.Router()后出现;“