본문 바로가기

공부

nodejs 서버 만드는 과제 했을 때

로직을 실행할 js 파일 -> node 명령어로 서버 오픈

view를 제공할 html -> live-server --port=<NUMBER> 명령어로 서버 오픈


nodejs 서버는 express모듈을 사용함


요청을 받을 때 cross domain 어쩌고...  CORS 오류를 피하기 위해


express에 특정 url에 대해 접속을 허용하도록 해야 한다



app.use( function (req, res, next) {

    res.setHeader('Access-Control-Allow-Origin', 'http://127.0.0.1:5500');

    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');

    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With, content-type');

    res.setHeader('Access-Control-Allow-Credentials', true);

    // CORS 허용을 위한 헤더 설정들

    next();

    // 비동기 처리 때문에 넣는것, 위 setHeader들이 다 설정된 후에 요청을 받음

});



localhost의 5500포트에서 요청이 올 시에는 해당 요청을 허용하도록 함


세부내용은 잘 모르겠고, next() 도 저런식으로 작동하는건지 모르겠다 비동기 처리 때문이란 건 알겠음



아무튼 위의 처리를 마치면 html의 스크립트에서 nodejs 서버로 보내는 request를 받을 수 있다..



그냥 코드를 쓴다



__ JavaScript 파일


var express = require('express');

var app = express();


app.use( function (req, res, next) {

    res.setHeader('Access-Control-Allow-Origin', 'http://127.0.0.1:5500'); //  두 번째 파라미터가 허용할 URL

    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');

    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With, content-type');

    res.setHeader('Access-Control-Allow-Credentials', true);

    // CORS 허용을 위한 헤더 설정들

    next();

});


app.listen(8080, function() { 

console.log('server running on port 8080');

});

// 8080 포트로 서버 오픈


app.get('/', function(req, res) {

console.log('receive request');

}):

// get 방식으로 들어오는 요청을 걸러냄(?)

// '/' 이니까 루트 url임, http://127.0.0.1:8080/




__ HTML 파일 ( <script>부분)


<script>

var xhr = new XMLHttpRequest();

xhr.open('GET', 'http://127.0.0.1:8080/');

xhr.send();

// open으로 GET 방식 request 세팅하고, send 하면 바로 전송됨


xhr.addEventListener('load', function() {

console.log('receive response');

});

// response 받았을 시에 동작, 이벤트리스너 등록

</script>




솔직히 공부가 더 필요한데 뭐가뭔지도 모르겠고~


까먹을까봐 대충이라도 써둠


'공부' 카테고리의 다른 글

프로그래머스 - 가사 검색 (풀이중)  (1) 2020.05.24
Rasa Heroku에 배포하기  (1) 2019.06.26