使用模板文字变量导入 sql 文件并使用 knex raw 执行
Import sql file with template literal variables and execute with knex raw
我有一个大型 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 注入漏洞。
谢谢 <3
我能够使用原始绑定:http://knexjs.org/#Raw-Bindings
knex().raw(`
SELECT *
FROM user_profiles
WHERE user_id = :userId;
`, {userId: 1});
我有一个大型 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 注入漏洞。
谢谢 <3
我能够使用原始绑定:http://knexjs.org/#Raw-Bindings
knex().raw(`
SELECT *
FROM user_profiles
WHERE user_id = :userId;
`, {userId: 1});