Модуль ExpressJs не определен.Не удается прочитать свойство "Маршрутизатор" из неопределенного - PullRequest
0 голосов
/ 15 марта 2019

Спасибо, что нашли время посмотреть на мой вопрос. Я начну с того, что предоставлю всю необходимую информацию как можно лучше.

Вот моя структура каталогов.

Примечание: () Звездочка представляет файл. (-) Дефис представляет собой каталог. *

* 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"
}

Когда мне требуется файл config / modules в файле app.js, я могу отлично использовать переменные, и никаких проблем нет. Но когда мне требуется тот же конфиг / модули в файле маршрутов / корня, он выдает ошибку «Не могу прочитать свойство« Маршрутизатор »из undefined.

Код маршрута / корневого файла выглядит следующим образом:

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 показывает мне список необходимых модулей, показывая всплывающую подсказку. Но когда я делаю то же самое в файле routs / root, он показывает мне const модули ": любой" hover-pop. Чтобы быть более точным в отношении вопроса, это "const modules: any" появляется только после того, как я добавлю "const router = express.Router ();"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...