Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Knex查询动态更改数据库_Javascript_Node.js_Knex.js - Fatal编程技术网

Javascript 使用Knex查询动态更改数据库

Javascript 使用Knex查询动态更改数据库,javascript,node.js,knex.js,Javascript,Node.js,Knex.js,我在尝试动态设置Knex数据库时遇到问题。我有多个数据库,每小时递增一次。(例如db-1小时、db-2小时)。当我们切换到一个新的小时,我想使用下一个数据库。我创建了一个示例函数,该函数基于新数据库返回一个新的Knex函数,但得到了一个不推荐使用的警告 我的配置 import knex from 'knex'; const knexConfig = { client: 'pg', connection: { host: host, port: port, use

我在尝试动态设置Knex数据库时遇到问题。我有多个数据库,每小时递增一次。(例如db-1小时、db-2小时)。当我们切换到一个新的小时,我想使用下一个数据库。我创建了一个示例函数,该函数基于新数据库返回一个新的Knex函数,但得到了一个不推荐使用的警告

我的配置

import knex from 'knex';

const knexConfig = {
  client: 'pg',
  connection: {
    host: host,
    port: port,
    user: user,
    database: '',
    password: password,
  },
  pool: {
    min: 2,
    max: 10,
  },
  timezone: 'UTC',
};

exports const getCurrentDb = async () => {
 const hourDb = await getLatestDbName()
 cons knexConfig.connection.database = hourDb; // I update the database name
 return knex(knexConfig);
}
 

用法

代码正在运行,但我始终收到以下警告信息:

不推荐在没有表名的情况下调用knex。改用knex.queryBuilder()。


如何动态连接到数据库?提前谢谢你

警告消息与DB开关机制无关

尝试将
select
语句更改为类似以下内容:

从“/config”导入{getCurrentDb}
const getSomething=async()=>{
const db=await getCurrentDb()
返回db(“something”).columns(“*”)
}
import { getCurrentDb } from "./config"

const getSomething = async () => {
 const db = await getCurrentDb()
 return db.select().from("something")
}