로직을 실행할 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 |