0211 2편

박태욱·2022년 2월 11일

html >>>>>>api >>>>>>db
api 서버는 onpython.cafe24 nodeground (recruit_api)
파일 저장을 하기 위해 새로만들기 오랜 시간이 거렬
기존에 만들어져 있는 서버를 이용해 파일 업로드 api 만듬
upload_server안에 nodeground 파일 업로드 api 제작

  1. html (support.js) 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까지 저장된다.

profile
개발 노트

0개의 댓글