如何使用es6的模板字符串编写以下查询?
connection.query('\
CREATE TABLE `' + dbconfig.database + '`.`' + dbconfig.users_table + '` ( \
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT, \
`username` VARCHAR(20) NOT NULL, \
`password` CHAR(60) NOT NULL, \
PRIMARY KEY (`id`), \
UNIQUE INDEX `id_UNIQUE` (`id` ASC), \
UNIQUE INDEX `username_UNIQUE` (`username` ASC) \
)');
有没有其他更好的方法来编写多行sql查询?
2条答案
按热度按时间wecizke31#
在es6中,您可以使用模板文本,因为它们可以是多行的。
myss37ts2#
即使模板字符串按预期工作,我也很难读取、验证和格式化放入其中的sql查询。
我更喜欢有一个实用函数,从appstart上的文件中以字符串的形式加载查询。
下面是此实用程序函数的typescript示例:
现在,我有一个sql文件,我可以用任何我觉得方便的工具自动格式化:
在安装了sql格式化插件的webstorm中是这样的:
最后,我这样称呼它(koa/express端点示例):
赞成的意见:
sql的自动格式化。
将sql查询与代码分离,从而提高可读性。
当我需要调试时,我可以很快看到查询本身。
欺骗:
运行应用程序时,必须从文件系统中获取并加载一个外部文件。