带有Express且没有ORM的原始SQL

时间:2018-10-07 18:13:48

标签: node.js postgresql express architecture software-design

我想在我的应用程序中使用原始SQL查询,但是我对如何构建应用程序有一些疑问。

一些背景:

  1. 我正在使用Express和Postgres编写JSON API。
  2. 我当前未使用ORM。我以前曾经使用过Sequelize,但是我不相信查询是经过优化的,因此我很犹豫使用它。

  3. 我在代码中使用camelCase,但是Postgres不区分大小写,因此出于可读性考虑,我在数据库表中使用了under_scores。我经常需要执行以下查询: SELECT first_name AS "firstName" from users; 当查询变大时,几乎无法读取,因为js字符串模板中没有SQL的语法高亮显示。

  4. 我觉得我的查询中有太多重复,但这是预期的。

我在想什么:

  1. 我找不到能突出显示js文件和字符串中的SQL的Visual Studio Code扩展。如果有一个,我可能会过去。
  2. 我可能会将所有查询写在.sql文件中,以便我可以突出显示语法并将其全部加载到内存中(当我的应用程序开始阻止太多IO操作时),因为这与我使用raw的原因背道而驰首先是SQL。

有人以前有过这个问题吗?将原始SQL与Postgres和Express结合使用时,如何构造应用程序?

1 个答案:

答案 0 :(得分:0)

  1. 绝对将所有sql脚本保留在相应的.sql文件中。
  2. 坚持有意义的命名约定。提出一个您感到满意的工具:将来,它将允许您在代码库中构建有用的工具,自动执行许多无聊的工作并使您更加快乐。
  3. 如果您很快变得复杂,请至少生成一些重复的/常用的sql。考虑在文件中使用一些简单的占位符,例如{{ firstName }},该占位符会转换为first_name AS "firstName"。这样的翻译应该只发生一次-当您征询来源.sql时。这更加复杂,并且高度取决于您的任务类型。有时,这种方法是无用的,有时却是有用的。