【问题标题】:Saving Sequelize Query Text In Database在数据库中保存 Sequelize 查询文本
【发布时间】:2020-03-11 14:57:39
【问题描述】:

我有一个续集查询,我想保存在数据库中,然后按需执行。为了做到这一点,我首先测试它如何在变量中作为字符串工作(因为在数据库中它将被存储为字符串):

queryToRun = models.user.findAll({
  attributes: [
    ['name', 'name'],
    [Sequelize.literal("COUNT(DISTINCT(user.id))"), "user_count"]
  ],
  group: Sequelize.col("user.name")
})

有了这个查询,我想像这样使用它:

Promise.all(queryToRun);

我成功地将对象(包含属性等的findAll 中的对象)保存为字符串,然后执行,但我不知道如何保存查询的每个部分。我想保存实际的"model.user.findAll()"string 并在以后评估它。

这很重要,因为我想定义运行findAll 所需的模型并将其保存在数据库中。

【问题讨论】:

  • 创建视图而不是将其存储为字符串怎么样?
  • 不错的解决方法,但我需要动态创建和存储它

标签: express sequelize.js


【解决方案1】:

这其实很简单

  1. 不要使用多行字符串,因为某些原因会导致函数调用出错
  2. 使用 eval 计算字符串

例子:

let queryToRun = 'models.project.findAll({})';
Promise.all([eval(queryToRun)]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-12
    相关资源
    最近更新 更多