adonis.js - 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",
解决方案
我知道这是不久前有人问过的,但我遇到了同样的问题,在任何地方都找不到答案。
无论如何,在我的情况下它是由 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)。
推荐阅读
- terraform - ICMP 的 Terraform 脚本
- php - 将找到的项目推入数组
- javascript - 如何在父组件中编写所有这三个功能而不是在子组件中编写 - ReactJS
- javascript - mongodb:从嵌套的引用数组中提取一项
- gnuplot - 规范球的 gnuplot 交集
- javascript - 如何使 AudioWorklets 与 vue-cli/webpack/babel 一起工作?(得到非法调用错误)
- javascript - Javascript - 如何根据深度嵌套的数字对嵌套对象中的值进行排序?
- javascript - Grails:我应该使用控制器还是 javascript 来运行查询并相应地更新页面?
- typescript - 类和函数参数的通用打字稿
- r - 使用 kableExtra 增加行距