我有一个大型的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
答案 0 :(得分:0)
我能够使用原始绑定:http://knexjs.org/#Raw-Bindings
knex().raw(`
SELECT *
FROM user_profiles
WHERE user_id = :userId;
`, {userId: 1});