首页 > 解决方案 > RuntimeException: E_MISSING_CONFIG Adonis.js

问题描述

运行应用程序时出现以下错误:

RuntimeException: E_MISSING_CONFIG: logger.transport is not defined inside config/app.js file

下面是带有记录器配置代码的 config/app.js 文件(注释已被删除),

logger: {
    transport: 'console',
    console: {
      driver: 'console',
      name: 'adonis-app',
      level: 'info'
    },
    file: {
      driver: 'file',
      name: 'adonis-app',
      filename: 'adonis.log',
      level: 'info'
    }
  }

我对阿多尼斯还是新手,想不出这种配置可能存在的问题。

依赖项:

    "@adonisjs/ace": "^5.0.1",
    "@adonisjs/antl": "^2.0.5",
    "@adonisjs/auth": "^3.0.4",
    "@adonisjs/bodyparser": "^2.0.2",
    "@adonisjs/cors": "^1.0.5",
    "@adonisjs/drive": "^1.0.2",
    "@adonisjs/fold": "^4.0.7",
    "@adonisjs/framework": "^5.0.5",
    "@adonisjs/ignitor": "^2.0.8",
    "@adonisjs/lucid": "^5.0.3",
    "@adonisjs/mail": "^3.0.7",
    "@adonisjs/session": "^1.0.23",
    "@adonisjs/shield": "^1.0.6",
    "@adonisjs/validator": "^5.0.3",
    "acler": "^1.0.0",
    "adonis-acl": "^1.1.0",
    "adonis-scheduler": "^3.0.2",

标签: adonis.js

解决方案


我知道这是不久前有人问过的,但我遇到了同样的问题,在任何地方都找不到答案。

无论如何,在我的情况下它是由 HTTPS 引起的。出于某种原因,当您以 HTTPS 模式运行服务器时(如他们的文档中所述),如果找不到 SSL 密钥和证书文件,它就无法再运行您的应用程序/测试。

在生产环境中,这并不重要,因为它能够找到 SSL 文件,但在我的情况下,我将它与 gitlab CI 一起使用来运行测试,然后再将其部署到我的远程主机。gitlab CI 运行器没有 SSL 文件,因此无法运行测试。

我通过简单地将 server.js 复制到 server-ssl.js 并确保在测试时运行 server.js 并在远程主机上运行 server-ssl.js 解决了这个问题。

server.js 包含默认的 HTTP 服务器配置,server-ssl.js 包含 HTTPS 服务器配置。

希望这对将来的人有所帮助!;)

编辑:当您尝试加载任何其他配置文件中不存在的配置选项时,也会发生此错误。例如从不存在的文件中读取(fs.readFileSync)。


推荐阅读