node.js에서 아래와 같은 값을 render로 보낸다 치면


const labels = ['Mar 1', 'Mar 2', 'Mar 3', 'Mar 4', 'Mar 5', 'Mar 6', 'Mar 7']

문자열의 표시인 작은 따옴표가 없어지는 경우가 발생함..

이는 html을 컨트롤 하는데는 좋은데..

html 안에 client javascripte 안에 변수로 던저 줄때는 문제가 된다..

따옴표가 없으니 제대로 인식이 안되는


그래서 수동으로 따옴표 붙이는 작업도 해봤는데 뭔가 좀 거시기해서 구글링 해서 찾으니

json 인코딩을 이용한 처리가 있었음


- node.js 의 스크립트 파일

const labels = ['Mar 1', 'Mar 2', 'Mar 3', 'Mar 4', 'Mar 5', 'Mar 6', 'Mar 7'];

res.render('dashboard', {
labels: encodeURIComponent(JSON.stringify(labels))
});


- handlebars의 html 처리

<script>
// Area Chart Example
var ctx = document.getElementById("realTimeUser");
var myLineChart = new Chart(ctx, {
type: 'line',
data: {
labels: JSON.parse(decodeURIComponent("{{{labels}}}")),
}
});
</script>


참고로 html 파일에 값은 따옴표 꼭 붙쳐줘야 제대로 인코딩 됨


by 널부러 2018. 8. 17. 17:32