반응형
저는 생활코딩 사이트에서
egoing 님의 수업을 매우 좋아합니다.
쉽고
해당 분야를 접하기에 좋고
입문 수업으로 너무나 적절합니다.
단점이 있다면
프로그래밍 세계가 너무 빨리 업데이트가 진행되다보니
몇년만 지난 수업이더라도
수업 중 알려주신 코드가 작동을 안할때가 있습니다.
제가 영상 댓글로 이미 남겨두었지만
영상 댓글을 안보고 진행을 먼저하시다가 막히시고
구글링을 하시는 분들이 많더라고요.
그래서 제 글이 그분들께 도움이 되길 바라며 올려봅니다.
우선 node.js - Url 로 입력된 값 사용하기
수업에서 오류가 발생합니다.
이고잉님이 올려주신 코드대로 하게되면
cmd창에 자꾸 get을 읽을 수 없다고 뜹니다.
제가 찾아본 결과 이고잉님 수업 당시와
현재의 get 사용 방식이 다르더군요.
var http = require('http');
var fs = require('fs');
var url = require('url');
var app = http.createServer(function(request,response){
var _url = request.url;
var queryData = url.parse(_url, true).query;
console.log(queryData.id);
if(_url == '/'){
_url = '/index.html';
}
if(_url == '/favicon.ico'){
return response.writeHead(404);
}
response.writeHead(200);
response.end(queryData.id);
});
app.listen(3000);
이고잉님이 올려주신 코드인데요,
여기서 오류가 발생하는 부분은
.get 때문입니다.
2021 3월 경부터 node.js의 url.parse 사용 방식이
보안 이슈로 바뀌었다고 하더군요.
(해외 사이트를 읽은건데 제 해석이 정확한지는 모르겠습니다.
그래서 url.parse를
new URL('http://localhost:3000' + _url).searchParams;
로 바꿔주면 됩니다.
그래서 최종 코드는
var http = require('http');
var fs = require('fs');
var url = require('url');
var app = http.createServer(function(request,response){
var _url = request.url;
var queryData = new URL('http://localhost:3000' + _url).searchParams;
console.log(queryData.get('id'));
if(_url == '/'){
url = '/index.html';
}
if(_url == '/favicon.ico'){
response.writeHead(404);
response.end();
return;
}
response.writeHead(200);
//console.log(__dirname + url);
response.end(queryData.id);
});
app.listen(3000);
입니다.
다시보니 queryData.id 도
queryData.get('id')로 수정했네요.
반응형
'코딩 공부 > node.js' 카테고리의 다른 글
음.... 오류.... (0) | 2022.02.15 |
---|---|
글 수정 UI 만들기 (0) | 2022.02.13 |
PM2를 이용한 웹서버 확인하기, 그리고 오류(?) (0) | 2022.02.09 |
댓글