首页 > nodejs 快捷书写sql方式

nodejs 快捷书写sql方式

如题, 要想书写格式化的sql 必须是多行的。 多行的字符串, 用 nodejs 书写有什么快捷的方式或工具。 一个个+号写过去, 实在太麻烦。

使用的编辑是vim, 有相关的快捷方式推荐更好了


没什么特别好的方法,一般对于长字符串有两种写法:

第一,用 \ 换行,注意,这样做是不会在字符串中插入 \n,最终结果将是 'Line 1Line 2Line 3'

sql = 'Line 1\
Line 2\
Line 3';

第二,用数组再 join,这样做性能会好一些,但写起来跟 + 一样蛋疼。

sql = [
  'Line 1',
  'Line 2',
  'Line 3'
].join('');

P.S. 如果真的想要写的爽,建议尝试一下 coffeescript 的 string 语法,如果从 python 过来的人应该会很熟悉且很顺手吧。


sublime Package: JavaScript Multiline


可以参考这个

[
'select * from',
'table',
'where username =',
'username'
].join(' ')


把 SQL 语句写在一个外部文件中,然后再读取文件内容。有点类似于在前端渲染结构较复杂的 DOM 元素时,使用模板引擎来取代用 + 号拼接字符串的方式。


我也提供下现在采用的方案:
使用一个orm, 这个orm的特点如下:
1. 完全不支持复杂表连接
2. 极高的缓存命中率
说明:大部分应用中使用的sql复杂度不高, 即使个别需要表连接的也完全可以拆分成两条sql。咋看可能增加了代码量,但这样做避免了复杂sql带来的高负载,同时拆分成简单sql能够很好的提升缓存命中率。

可能回答牛头不对马嘴,只是分享这个思路,目前在应用开发中没写过sql,全是通过orm


function a() {
/*
select  *
from    youtable
where   1 <> 0
*/
}

function getString(f) {
    return f.toString().replace(/^function[^/*]*?\/\*|\*\/[^*/]*\}$/g, "")
}

getString(a)

结果(引号仅用于表示起始位置)

"
select  *
from    youtable
where   1 <> 0
"
【热门文章】
【热门文章】