본문으로 바로가기
var myObstaclesHeight = [];
var myObstaclesX = [];
var myObstaclesY = [];
for (i = 0; i < myObstacles.length; i += 1) {
myObstaclesHeight.push(myObstacles[i].height);
myObstaclesX.push(myObstacles[i].x);
myObstaclesY.push(myObstacles[i].y);
}
높이,x축값,y축값을 저장하기 위한 배열을 선언하고 push 하였다.
var data = {
'saveId':saveId,
'frameNo':myGameArea.frameNo,
'myGamePieceX':myGamePiece.x,
'myGamePieceY':myGamePiece.y,
'myObstaclesHeight':myObstaclesHeight,
'myObstaclesX':myObstaclesX,
'myObstaclesY':myObstaclesY
};
json 변수를 만들고
var jsonData = JSON.stringify(data);
json 형으로 변환한 후에
console.log(jsonData); 출력해보니
{"saveId":"qwtwt","frameNo":199,"myGamePieceX":10,"myGamePieceY":120,"myObstaclesHeight":[192,161,114,200],
"myObstaclesX":[281,281,430,430],"myObstaclesY":[0,319,0,280]}
정상적으로 parsing 성공
$.ajax({
type:'post',
dataType:'json',
data:jsonData,
url:'./gamesave',
success : function(responseData) {
console.log(responseData);
},
error : function(error) {
}
});
ajax로 jsonData를 nodejs 서버에 전달
app.post('/gamesave', function(req, res){
console.log("Data : ", req.body);
});
로그를 찍어보니
Data : { '{"saveId":"qwtwt","frameNo":199,"myGamePieceX":10,"myGamePieceY":120,
"myObstaclesHeight":': { '192,161,114,200': { '281,281,430,430': [Object] } } }
이런식으로 배열처리가 이상하게 됌
이런저런 삽질끝에
var jsonData = JSON.stringify(data); 를 지우고
data변수 그대로 nodejs 서버로 날린 후 nodejs에서
var jsonData = JSON.stringify(req.body); 처리를 하니
해결됌