Cube.js Playground:加载数据库架构时出错

问题描述

我目前正在学习Javascript / HTML / CSS,以构建一些数据仪表板。 我已找到本教程https://d3-dashboard.cube.dev/setting-up-a-database-and-cube-js

目前,我被困在这一部分:

下一步是创建Cube.js数据模式。

在以下位置打开Cube.js游乐场时:http:// localhost:4000,我在终端中得到以下输出

? Dev environment available at http://localhost:4000,I get the following error:

? Cube.js server (0.21.1) is listening on 4000
Error: getaddrinfo ENOTFOUND <YOUR_DB_HOST_HERE>
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:66:26)

在Cube.js游乐场网页视图中:

Error while loading DB schema
Error: getaddrinfo ENOTFOUND <YOUR_DB_HOST_HERE> at
GetAddrInfoReqWrap.onlookup [as oncomplete](dns.js66:26)

我已经编辑了以下文件

d3-dashboard/node_modules/@cubejs-backend/server-core/core/index.js

,带有:

const checkEnvForPlaceholders = () => {
  const placeholderSubstr = '<YOUR_DB_';
  const credentials = [
    'CUBEJS_API_SECRET=SECRET','CUBEJS_DB_TYPE=postgres','CUBEJS_DB_NAME=ecom','CUBEJS_WEB_SOCKETS=true'
    /*'CUBEJS_DB_HOST',*/
    /*'CUBEJS_DB_NAME',*/
    /*'CUBEJS_DB_USER',*/
    /*'CUBEJS_DB_PASS'*/
  ];

在这里做错了什么吗? 我对应用程序和前端是完全陌生的,所以我看上去可能有些“愚蠢”,但我真的很想从我的错误中学习:)

感谢您的时间和潜在的投入/帮助!

祝你有美好的一天:)

解决方法

您绝对不应编辑node_modules目录中的任何文件。您应该将env变量存储在.env文件中。

-your-cubejs-server-root
--schema
--.env
--//..

可能看起来像

CUBEJS_DB_HOST=localhost
CUBEJS_DB_NAME=cubejs
CUBEJS_DB_USER=root
CUBEJS_DB_PASS=
CUBEJS_DB_TYPE=mysql
CUBEJS_API_SECRET=secret

您遇到的错误是无法建立与数据库的连接。因为您缺少正确的CUBEJS_DB_HOST=变量。

每个数据库所需的最小变量集各不相同,可以在https://cube.dev/docs/connecting-to-the-database

中找到