본문 바로가기
코딩 공부/node.js

생활코딩 node.js 수업 중 오류 업데이트

by Camel_coding_food 2022. 2. 13.
반응형

저는 생활코딩 사이트에서

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

댓글