카테고리 없음

Node.js 스터디 (실무 사례)

멋쟁이천재사자 2023. 12. 5. 15:40

Node.js 경험이 전무한데 Node.js 로 개발된 코드를 인수인계 받았다.

javascript 나 Java 등에 대한 어느 정도의 경험이 있어서 도움은 되지만 한 줄 한 줄 살펴보는 것이 더디다.

 

천리길도 한걸음부터!

 

 

app.js 라는 파일을 열어보니...

const fs = require('fs');
var routes      = require('./routes');
var activity    = require('./routes/activity');
var parser = bodyParser.urlencoded({extended:false});

 

 

require 가 무엇인가?

https://blog.naver.com/jaeeun_98/222921543245

 

[Node.js] Module 이란? (내장모듈, 외장모듈, exports와 require, export와 import)

module module은 여러 함수들의 집합을 의미한다. module을 사용하면, 원하는 기능의 함수를 간편하게 불러...

blog.naver.com

 

Java 로 보면 import, C 로 보면 #include 와 유사하게 느껴진다.

 

 D:\dev\pricow-naff\routes 디렉터리

2023-11-15  오후 02:04    <DIR>          .
2023-11-15  오후 02:04    <DIR>          ..
2023-11-15  오후 02:04             8,325 activity.js
2023-11-15  오후 02:04               604 index.js
               2개 파일               8,929 바이트
               2개 디렉터리  999,787,433,984 바이트 남음

 

 

require('./routes');

폴더명을 바로 쓰고 있다. 혹시 폴더명을 사용하면 web 에서 index.html 이나 default.html 을 디폴트로 사용하는 것처럼 디폴트로 index.js 를 사용하는 것일까? 

 

require('./routes/activity');

activity.js 의 확장자는 제거하고 사용하고 있다.

 

 

확인해보자!

 

첫번째로 require('./routes'); 을 require('./routes333'); 이라고 변경하면 어떤 오류가 나는지 확인해보자.

 

 

index.js 를 index22.js 로 변경하고 테스트를 해보자. 내가 생각한 가설이 얼추 맞는 듯하다.

Error: Cannot find module './routes'

activity.js 또는 activity 둘다 정상 실행된다. 확장자는 붙이거나 말거나 개발자 맘인듯 하다.

var activity    = require('./routes/activity.js');

 

 

Error: Cannot find module './routes/activity.js1'

 

 

함수 정의인지 콜백함수인지 어렵다. /getReqNum.do 는 외부 url 일까 내부 url 일까.

app.post('/getReqNum.do', function (req, res) {
  console.log('getReqNum.do start');
  var result = {
        "all" : [
          {
 .. 중간 생략 ...
    }
  
  res.send(result);
})

 

 

Cannot GET /getReqNum.do

내부 주소가 아닌 것 같다.

 

 

그러나, 운영 서버 경로에서 해보면 에러메시지가 다르다.

 

지금 이 페이지가 작동하지 않습니다.문제가 계속되면 사이트 소유자에게 문의하세요.
HTTP ERROR 405

 

경로는 유효한데 파라미터 전달이 불충분하거나 세션이 없는 등의 내부 오류로 보인다. 로칼 개발환경과 운영환경이 다른 것으로 보인다.

 

 

app.post 를 먼저 이해하기 위해 스터디를 해보니 express 라는 것을 사용해서 post 방식으로 데이터를 주고 받는 것이었다.

https://bloodstrawberry.tistory.com/1216

 

Node JS - POST로 데이터 전송 받기 (Process POST Data)

Node JS 전체 링크 참고 - POST 방식으로 서버에 폼 데이터 전송하기 Node JS에서 post 방식으로 데이터를 받는 예제는 다음과 같다. const express = require("express"); const app = express(); const qs = require("querystring

bloodstrawberry.tistory.com

 

크롬에서 F12 를 눌러서 getReqNum 을 보니 

 

Preview 에 있는 것이 무엇인가?

app.js 에서 응답값을 2건 있는 것처럼 개발환경에서는 하드코딩해서 테스트하는 것이었다.

 

 

 

얼마나 더 살펴보아야 익숙해질 것이며, 어느 정도 파악을 하는것이 나에게 필요할까나...

 

오늘은 여기까지 살펴 보는 것으로 마무리하자.