node js 에서 multi line string을 사용할 때는 '\'을 사용한다. 


var queryStatement = '\

 select j.id, j.title, j.url \

 from  \

     (select ...) \

     i right join \

     (select ...) j \

on i.id = j.id';


multi line string 사용시에 아래와 같이 'Unexpected token ILLEGAL'이라는 에러가 발생할 수 있다. 


/development/work/wysnode/modules/db.js:265

rcode like \'e%\' and c.date >= ' + from + ' and c.date <= ' + to + ' order by

                                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

SyntaxError: Unexpected token ILLEGAL

    at Module._compile (module.js:439:25)

    at Object.Module._extensions..js (module.js:474:10)

    at Module.load (module.js:356:32)

    at Function.Module._load (module.js:312:12)

    at Module.require (module.js:364:17)

    at require (module.js:380:17)

    at Object.<anonymous> (/development/work/wysnode/route/admin.js:4:10)

    at Module._compile (module.js:456:26)

    at Object.Module._extensions..js (module.js:474:10)

    at Module.load (module.js:356:32)



그 이유는 바로..


'\' 다음에 tab 또는 space가 들어가 있기 때문이다. 



Mysql에서 쿼리를 만들때 mysql workbench를 이용하는데, 사용하다보면 tab이나  들어갈 수 있는 상황이 생기는데.. 주의하면 될듯. 



Posted by '김용환'
,