在前端开发中,我们经常需要对 SQL 语句进行格式化或美化,以便能更好的阅读和理解。在这种情况下,npm 包 sqlformatter 就非常方便了。它可以格式化包括 SELECT、UPDATE、INSERT 和 DELETE 在内的 SQL 语句,还可以设置自定义的选项来满足个人需求,让我们来一探究竟能做什么吧。
安装
安装 sqlformatter 只需要使用 npm 并运行以下命令:
npm install sql-formatter
使用
在你的项目中,你需要引入 sql-formatter。假设你已经有了一个查询字符串:
const sql = ` SELECT firstname, lastname, account_balance FROM users WHERE account_balance > 5000 ORDER BY lastname, firstname ASC `;
现在,你可以使用如下代码将 query 输出为格式化字符串:
const sqlFormatter = require('sql-formatter'); console.log(sqlFormatter.format(sql));
输出:
-- -------------------- ---- ------- ------ ---------- --------- --------------- ---- ----- ----- --------------- - ---- ----- -- --------- --------- ---展开代码
我们可以看到 sql-formatter 自动将 SQL 语句中的关键字和表名等逗号分隔的单词独立成一行,缩进后为查询语句提供了更好的可读性。
可定制化选项
但是,sql-formatter 不仅仅能够格式化 SQL 语句,它还支持一系列选项,可以让你以最适合你需求的方式显示格式化的 query。
指定缩进量
与一些开发习惯有关的,缩进可以看作是格式化 SQL 语句时最重要的组件之一。你可通过设置缩进量来改变 SQL 语句中列的对齐方式,例如:
-- -------------------- ---- ------- ----- ------------ - ------------------------- ----- --- - - ------ ---------- --------- --------------- ---- ----- ----- --------------- - ---- ----- -- --------- --------- --- -- ------------ ------------------------ - ------- - -- -- --展开代码
输出:
-- -------------------- ---- ------- ------ ---------- --------- --------------- ---- ----- ----- --------------- - ---- ----- -- --------- --------- ---展开代码
我们把 indent 属性设置为了两个空格,因此我们在项之间添加了两个空格。您还可以将其设置为一个制表符 \t
,以符合您的惯例。
仅缩进嵌套查询
该选项仅缩进嵌套查询语句,比如 SELECT
和 FROM
子句。你可以轻松设置同时更改 SQL 语句的外观,如下:
-- -------------------- ---- ------- ----- ------------ - ------------------------- ----- --- - - ------ ---- -- --- ---- -- --------- ------ -- ---------- ---- --------------- - ---- ---- --------------- - -- ---------- - ---- ----- -- ----------- ----- -- ------------ ------------------------ - ------- - -- ----------- ----- -- --展开代码
输出:
-- -------------------- ---- ------- ------ ---- -- --- ---- -- --------- ------ -- ---------- ---- --------------- - ---- ---- --------------- - -- ---------- - ---- ----- -- ----------- -----展开代码
每句话加分号
在SQL查询结束时自动添加分号。
-- -------------------- ---- ------- ----- ------------ - ------------------------- ----- --- - - ------ ---------- --------- --------------- ---- ----- ----- --------------- - ---- ----- -- --------- --------- --- -- ------------ ------------------------ - ------- - -- ---------- ----- -- --展开代码
输出:
-- -------------------- ---- ------- ------ ---------- --------- --------------- ---- ----- ----- --------------- - ---- ----- -- --------- --------- ----展开代码
更多选项
还有一些其他选项包括:
- uppercase:将关键字转换为大写;
- linesBetweenQueries: 设置SQL查询之间的换行符数;
- params: 用于格式化包含 ? 的查询/转换命令的占位符;
更多细节详见sq-formatter官方文档
总结
使用 npm 包 sql-formatter 可以快捷方便地将 SQL 查询语句格式化为易于阅读的字符串。除此之外,sql-formatter 还可选自定义属性来满足你的需求。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600670a68ccae46eb111f242