Модуль не найден, если я не использую полный путь при создании плагинов в Hapi - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь ознакомиться с HapiJS и поиграть с ним на этой неделе, я столкнулся с проблемой с плагинами и путями.Я получаю ошибку относительно пути, который я указываю, когда мне требуется файл.Я не могу использовать ". / " без сообщения об ошибке.Единственный способ устранить ошибку - использовать полный полный путь.

Вот мой код, который работает:

'use strict';

const indexController = require('/Users/mylaptop/docker-node/controllers/IndexController.js');

module.exports.plugin = {
    name: 'myPlugin',
    version: '1.0.0',
    register: async function (server, options) {

        // Create a route for example
        server.route({
            method:'GET',
            path:'/test',
            handler: function (request, h) {

                return indexController.loadIndex(h);
              }
        });

    }
};

Однако, если я пытаюсь запросить мой файл IndexController следующим образом:

const indexController = require('./controllers/IndexController.js');

Тогда я получаю эту ошибку:

internal/modules/cjs/loader.js:583
    throw err;
    ^

Error: Cannot find module '/Users/mylaptop/docker-node/Users/mylaptop/docker-node/controllers/IndexController.js'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
    at Function.Module._load (internal/modules/cjs/loader.js:507:25)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (internal/modules/cjs/helpers.js:22:18)
    at Object.<anonymous> (/Users/mylaptop/docker-node/config/routes/index.js:5:25)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)

Она не работает внутри моего плагина, но вне моего плагина, требуя, чтобы файлы таким образом работали нормально.

В чем может быть проблема?Как я могу решить это?

Заранее спасибо.

1 Ответ

0 голосов
/ 04 февраля 2019

Проблема решена с помощью:

const indexController = require('../../controllers/IndexController.js');

Моя корневая папка проекта находилась в 2 каталогах, поэтому ../../ работает для меня.

...