[Node.js] Express Framework에서 textarea + DB 연동시 줄바꿈 해결방법

2017. 9. 14. 21:29개발/Node.js

반응형

textarea


멀티라인 일반 텍스트 편집 컨트롤을 나타냄.






문제 정의


1. <textarea> 태그내에서 저장하려고 Form을 submit하면 공백이 생기는 문제

2. 태그안에서 엔터는 \r\n이지만 html에서의 줄바꿈은 <br>로 나타내야되는데 어떤걸 저장시킬지 애매한 상황







해결방법


1번의 경우는 다음과 같은 경우에 발생한다.


1
2
3
<textarea>
    <%=row.content%>
</textarea>
cs


이 경우에 <textarea>와 </textarea> 사이에 'whitespace'(Stack Overflow에서..)라는 공백이 들어가있다. 이것을 없애주면 해결가능하다.


1
<textarea><%=row.content%></textarea>
cs






2번의 경우는 textarea 태그내에서 form으로 감싸서 서버측으로 던져주고 그대로 DB에 저장한다.

그리고 다시꺼낼때 바꿔서 출력만 해주면되는데 이때 escaped문으로 써주어야 한다.



1
<%- contents.replace(/\n/g, '<br/>') %>
cs


express framework에서는 <%= %> 대신에 <%- %> 을 써서 해결한다고 한다.

참고로 replace 구문은 첫번째 파라미터를 두번째 파라미터 값으로 바꾼다는 뜻이다.










반응형