html >>>>>>api >>>>>>db
api 서버는 onpython.cafe24 nodeground (recruit_api)
파일 저장을 하기 위해 새로만들기 오랜 시간이 거렬
기존에 만들어져 있는 서버를 이용해 파일 업로드 api 만듬
upload_server안에 nodeground 파일 업로드 api 제작
return new Promise(function(resolve, reject) {
console.log("resumeUpload");
let files = document.getElementById("bizFile").files;
if(files.length > 0)
{
let file = document.getElementById("bizFile").files[0];
let filename = '';
var formData = new FormData();
formData.append('resume_file', file);
let filenameArray = file.name.split(".");
let extension = "";
if(filenameArray.length > 1)
{
extension = filenameArray[filenameArray.length -1];
}
let params = {extension:extension};
let queryparams = Object.entries(params).map(e => e.join('=')).join('&');
let ajax = new XMLHttpRequest();
ajax.open('POST', 'https://sellapi.vidacoffee.co.kr:10700/api/nodeground_homepage/resume/upload/?' + queryparams);
ajax.onreadystatechange = function (e) {
if (ajax.readyState === XMLHttpRequest.DONE) {
if(ajax.status === 200) {
let response = ajax.responseText;
let data = JSON.parse(response);
console.log(data);
if(data.errorcode === 2000)
{
filename = data.filename;
console.log(filename);
}
resolve({resume:filename, portfolio:''});
} else {
reject();
console.log("error");
}
}
};
ajax.send(formData);
}
else
{
resolve({resume:'', portfolio:''})
}
});
}
소스가 길지만 안에서부터 post하여 db가연결되어잇는 1번 api연결한다 연결실패하면 2000 에러가뜬다.
밖으로 나와 파일 업로드 api이다
let filenameArray = file.name.split(".");
let extension = "";
if(filenameArray.length > 1)
파일자 명이 다를 때마다 에러가 나서 .을 기준으로 파일 업로드를 한다. 배열을 주어 하나의 파일을 업로드하게 하였다.
promise 포함되어있고 첫번째로 작용하는 소스이다. 이 소스가 정상 작동해야 다음으로 넘어갈수 있따. 다음의 portfolio도 소스코드는 같다.
function dbUpload(result)
{
return new Promise(function(resolve, reject) {
console.log("dbUpload");
console.log(result);
let params = {name: name, msg: msg, email: email, select_box: select_box, resume:result.resume, portfolio:result.portfolio};
let xhr = new XMLHttpRequest();
console.log(params);
xhr.open('POST', 'http://onpython.cafe24.com:10099/api/recruit/update/');
xhr.setRequestHeader('Content-type', 'application/json');
xhr.onreadystatechange = function (e) {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
let response = xhr.responseText;
let data = JSON.parse(response);
if (data.errorcode === 2000) {
resolve();
}
else
{
reject();
}
} else {
console.log("서버에 이상이 있습니다.");
console.log("error");
reject();
}
}
};
xhr.send(JSON.stringify(params));
});
}
db 정보를 불러오는 코드이다.
let params = {name: name, msg: msg, email: email, select_box: select_box, resume:result.resume, portfolio:result.portfolio};
의 값을 api 로 보내고 api 에서 insert 를 통해 db까지 저장된다.