[JavaScript] 비동기 통신으로 DB 데이터 받아오기
2022. 6. 7.ㆍ공부/JavaScript
728x90
화면에 비동기 통신으로 데이터를 뿌리기 위해서 웹에서 로그인 유저의 세션 정보를 인지하여 DB에 셀렉문을 날리고, 관련 데이터를 JSON으로 리턴하는 api를 만들어보았다.
// root의 index.js
server.get("/user-info-api", function (request, response) {
var title = null;
async.waterfall([
function(callback) {
title = mysql.escape(request.body.title);
callback();
},
function(callback) {
if(title !== undefined) {
const uid = request.session.uid;
console.log(uid);
var param = {
'param' : uid
}
var format = {language:'sql', indent:' '};
var query =
mybatisMapper.getStatement
('testMapper','testBasic1', param, format);
console.log(query);
Connection.connect();
Connection.query(query,
function(error,result, fields) {
if(error) {
console.log(error);
}
const data = JSON.stringify(result);
console.log(JSON.stringify(result));
const json = JSON.parse(data);
console.log('회원 정보 조회 완료');
return response.json({json});
});
} else {
console.log('err');
}
}])
})
뷰 단에서는 url이 리턴하는 JSON을 읽기위해 제이쿼리를 이용하였다. 넌적스 템플릿 엔진을 이용한 데이터 처리, 패치, 엑시오스 도전해보았지만 결국 돌고돌아 제이쿼리를.. 하단 퀵 모달에 쓰이는 draggable UI를 지원하기도 하고 비동기 처리가 손쉽기도 해서 이번 프로젝트에서 제이쿼리를 적극적으로 사용했다.
// user-info-api를 받아오는 "회원 정보 수정 화면"의 js코드
$(document).ready(function(){
$.ajax({
type:'GET',
url: 'http://localhost:8181/user-info-api',
dataType:'JSON'
}).done(function(data){
console.log(data);
$.each(data, function(i,item) {
let user_num = JSON.stringify(item[0].user_num);
let email = JSON.stringify(item[0].email).replace(/"/g,'');
let name= JSON.stringify(item[0].uname).replace(/"/g,'');
let address= JSON.stringify(item[0].address).replace(/"/g,'');
let phoneNum = JSON.stringify(item[0].phoneNum).replace(/"/g,'');
document.querySelector('#input_email').innerHTML = `${email}`;
document.querySelector('#input_name').innerHTML = `${name}`;
document.querySelector('#input_address').innerHTML = `${address}`;
document.querySelector('#input_phoneNum').placeholder = `${phoneNum}`;
document.querySelector('#input_phoneNum_re').placeholder = `${phoneNum}`;
});
});
});
'공부 > JavaScript' 카테고리의 다른 글
[JavaScript] 코딩테스트에서 자주 쓰는 필수 API (0) | 2022.06.10 |
---|---|
[JavaScript] Query String (0) | 2022.06.10 |
[JavaScript] mybatis-mapper 이용하여 코드 개선하기 (0) | 2022.06.03 |
[JavaScript] 자바스크립트의 자료형 (원시 타입, 비원시 타입) (0) | 2022.05.09 |
[JavaScript] autofocus와 유효성 검사 (정규 표현식 검사) (0) | 2022.04.03 |