gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 23:08:06 25 4
gpt4 key购买 nike

我编写了一个对 SQL 数据库进行外部调用的微服务。我有一个 js 文件,专门用于这些以字符串形式形成的看起来很糟糕的查询..

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

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

最佳答案

您有几个选择。

  1. 您可以将它们存储在您在程序启动时读取的文件中,这样您就可以在理解 SQL 的工具中编写它们,也许甚至可以连接到您的数据库来为您自动完成事情,可以帮助您格式,做语法高亮等。

  2. 您可以使用 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 注入(inject)向量。

这两个选项可能都有用例。

关于javascript - 如何组织用 Javascript/Node 编写的长 SQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37945671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com