无法读取未定义的属性“ omitFormat”

我在clickhouse中创建了一个表格,如下所示:

let clickhouse = new ClickHouse (sails.config.clickhouse);
let query = `CREATE TABLE table1(category String,subcategory String,title String,id Int64) Engine=Log`

我试图这样运行上面的查询:

return new Promise((resolve,reject) => {
            clickhouse.query (query,function (err,result) {
                if (err) {
                    console.log(err);
                }
                resolve('success');
            });
        });
let test = await createtable();

但是后来我得到了这个错误:

  

无法读取未定义的属性'omitFormat'

任何解决此错误的方法?谢谢

PS:我已经尝试在Clickhouse客户端中运行查询,并且该查询可以正常工作。

shuizainuli 回答:无法读取未定义的属性“ omitFormat”

您传递了未初始化的 sails.config.clickhouse -param。

将未定义的options传递给ClickHouse-constructor会导致此line中的错误。

查看控制台以查看相关警告:

> You must provide at least host name to query ClickHouse // <---- !!!
> 
> Error: TypeError: Cannot read property 'omitFormat' of undefined
>     at ClickHouse.query (/home/runner/node_modules/@apla/clickhouse/src/clickhouse.js:257:60)
>     at Promise (evalmachine.<anonymous>:8:26)
>     at new Promise (<anonymous>)
>     at createTable (evalmachine.<anonymous>:7:10)
>     at evalmachine.<anonymous>:17:1
>     at Script.runInContext (vm.js:133:20)
>     at Object.runInContext (vm.js:311:6)
>     at evaluate (/run_dir/repl.js:133:14)
>     at ReadStream.<anonymous> (/run_dir/repl.js:116:5)
>     at ReadStream.emit (events.js:198:13)

再现此错误的代码(请参见https://repl.it/repls/FakePortlyExponent):

const ClickHouse = require('@apla/clickhouse')

let clickhouse = new ClickHouse (/*sails.config.clickhouse*/null); // <----- !!!
let query = `CREATE TABLE table1(category String,subcategory String,title String,id Int64) Engine=Log`;

async function createTable() {
  return new Promise((resolve,reject) => {
              clickhouse.query (query,function (err,result) {
                  if (err) {
                      console.log(err);
                  }
                  resolve('success');
              });
          });
}

createTable()
    .then(() => {
        console.info('Success.');
    })
    .catch(err => {
        console.error('Error:',err);
    });
本文链接:https://www.f2er.com/3073708.html

大家都在问