微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何组织用Javascript / Node编写的长SQL语句

我写了一个微服务,它正在对sql数据库进行外部调用.我有一个js文件,专门用于这些形成为字符串的可怕查询.

let data_example = 'SELECT * \
WHERE BLAH = BLAH AND \
....';

它几乎没有人类可读,看起来很糟糕.存储/组织或接近需要在Node中存储和调用的长SQL查询字符串的最佳方法是什么?

解决方法:

你有几个选择.

>您可以将它们存储在您在程序启动时读取的文件中,因此您可以在一个了解sql的工具中创建它们,甚至可以连接到您的数据库自动为您完成任务,可以帮助您格式化,进行语法突出显示
>您可以使用ES2015(“ES6”)template strings(也称为“模板文字”):

let data_example = `
    SELECT *
    WHERE BLAH = BLAH AND ...
`;

模板字符串可以跨越线条(请注意,换行符和后续行开头的空格是字符串的一部分).

请确保您不使用模板字符串的功能通过(隐藏)字符串连接来填充参数,因为That Would Be Wrong™.:-)也就是说,就像您不会这样做:

// We kNow NOT to do this
example = "WHERE SomeColumn = '" + userInputValue + "'";

不要使用模板字符串的隐藏字符串连接做同样的事情:

// We also kNow NOT to do this
example = `WHERE SomeColumn = ${userInputValue};`

….这是你如何使用模板字符串进行字符串连接.如果您习惯使用模板字符串,那么错误地执行此操作将非常容易,并且具有sql注入向量.

两种选择都可能有用例.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐