【问题标题】:Import sql file with template literal variables and execute with knex raw使用模板文字变量导入 sql 文件并使用 knex raw 执行
【发布时间】:2019-09-09 00:41:46
【问题描述】:

我有一个大型 sql 查询,我想将它移动到一个 .sql 文件中,然后使用 knex.raw() 导入和执行。

所以我有类似的东西:

knex().raw(`
  SELECT *
  FROM user_profiles
  WHERE user_id = '${userId}';
`);

我尝试将查询移动到文件中并使用

读取它

let sql = fs.readFileSync('./queries/user-profile.sql').toString();

当然,模板文字变量${userId} 不会被评估。

我考虑了正则表达式并手动替换它,但我希望有更好的方法。最好是处理通过这样做创建的 sql 注入漏洞的解决方案。

谢谢

【问题讨论】:

    标签: sql node.js postgresql knex.js


    【解决方案1】:

    我能够使用原始绑定:http://knexjs.org/#Raw-Bindings

    knex().raw(`
      SELECT *
      FROM user_profiles
      WHERE user_id = :userId;
    `, {userId: 1});
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-15
      • 2021-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-06
      • 1970-01-01
      相关资源
      最近更新 更多