Knex select() 语句返回的数据类型是什么?

What are the returned data types from a Knex select() statement?

大家好,

我目前正在为一个项目使用 Knex.js,当我进行 knex('table').select() 函数调用时出现问题。

查询中的 returned 类型是什么?特别是,如果我的 table 中有一个 datetime 列,该字段的 return 值是多少?

我相信查询将为该列 return 类型 string 的值。但是任何数据库都是这种情况(我使用SQLite3)?查询 return 可能是一个 Date 值 ?

示例:

用户 table 具有此架构:

knex.schema.createTable('user', function (table) {
      table.increments('id');
      table.string('username', 256).notNullable().unique();
      table.timestamps(true, true);
  })

因为我使用 SQLite3,table.timestamps(true, true); 产生 2 个日期时间列:created_at & modified_at.

当我进行查询 knex('user').select() 时,它 return 是一个具有以下属性的对象数组:id、用户名、created_at、modified_at.

总是 string 类型吗?如果我使用其他数据库,如 PostgreSQL,这些列将具有 timestamptz SQL 类型。 returned 类型的 knex 也将是 string 类型 ?

因为我相信它将是字符串或数字的对象

这实际上不是 Knex 负责的事情,而是底层数据库库。因此,如果您使用 SQLite,它将是 sqlite3。如果您使用的是 Postgres,pg 负责,您可以找到更多文档 here。从广义上讲,大多数库采用的方法是将具有直接 JavaScript 等效项(布尔值、字符串、空值、整数等)的类型 return 编辑为这些类型;其他任何内容都将转换为字符串。

Knex 的工作是构建其他库用来与数据库对话的 SQL,并接收它们 return.

的响应