代码之家  ›  专栏  ›  技术社区  ›  LondonGuy

除非在Hapi中创建插件时使用完整路径,否则找不到模块

  •  0
  • LondonGuy  · 技术社区  · 6 年前

    我正在努力熟悉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);
                  }
            });
    
        }
    };
    

    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 回复  |  直到 6 年前
        1
  •  0
  •   LondonGuy    6 年前

    通过以下方式解决问题:

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

    我的项目根文件夹有两个目录,因此 ../../ 为我工作。

    推荐文章