자바스크립트 JS/리액트 React 노드 Node JS 공부일지

노드 js 입문 공부 일지 4. get 메소드로 요청 받기 (nodemon 사용하기)

Tomitom 2022. 11. 22. 17:24
반응형

 

이전에 처음으로 서버를 만드는 것을 실행해보았습니다. 

 

https://blue-dot.tistory.com/166

 

노드 js 입문 공부 일지 3. 첫 서버 만들기 http , NPM & express

노드 기반의 서버 노드를 이용하면 다양한 자바스크립트 어플리케이션을 개발할 수 있습니다. 그 중에서도 노드는 서버를 개발하는 데 가장 많이 사용됩니다. 서버는 네트워크를 통해 클라이언

blue-dot.tistory.com

 

 

이제 두 번째 서버를 만들어 볼 거예요. 

첫 번째 서버를 만들었던 과정 그대로 진행하여 아래의 네 개의 파일들이 생성이 되었습니다.

저는 두 번째 서버라고 이름 지었어요. 

 

처음 서버를 만들었을 때와 같이 app.js 에 다음과 같이 태그를 입력합니다. 

 

const express = require("express")
const app = expres()

app.listen(4003, () => {
    console.log("4003번 포트에서 구동 중...")
})

 

 

nodemon

이번에는 새로운 기능을 추가해보겠습니다. 

nodemon 이라고 하는 기능입니다. 

 

https://www.npmjs.com/package/nodemon

 

nodemon

Simple monitor script for use during development of a Node.js app.. Latest version: 2.0.20, last published: 2 months ago. Start using nodemon in your project by running `npm i nodemon`. There are 4059 other projects in the npm registry using nodemon.

www.npmjs.com

 

nodemon 은 코드가 수정될 때마다 라이브 코딩을 할 수 있도록 실시간으로 변경 사항을 반영해줍니다. 

자동 재시작을 실행해주는 nodemon은 개발 단계에서만 주로 사용하는 모듈이에요.

 

해당 모듈을 인스톨할 때에는 다음과 같이 작성합니다. 

 

npm install nodemon --save-dev

 

위 명령어에서 추가한 옵션은 ‘개발용 모듈’임을 나타내는 옵션입니다. 

인스톨을 한 후에는 package.json 에서 한 가지 더 추가할 것이 있습니다. 

 

package.json 에서

 
 "scripts": {
    "dev" : "nodemon app.js",
 
  
스크립트의 내용을 수정해주어야 합니다. 

스크립트는 명령어입니다. dev라는 명령어를 사용했을 때 nodemon app이 실행되도록 할 수 있습니다. 

node 에 라이브 코딩이 포함된 실행환경을 사용하고 싶기 때문에 nodemon을 설치한 후,
설치는 프로젝트 안에 설치하였기 때문에 윈도우 명 령프롬프트에서 실행했을 때 실행이 안 될 수 있습니다. 
이를 위해 package.json 에 nodemon 을 실행하겠다는 명령어를 입력을 해야 실행이 됩니다. 

 

이제 본격적으로 터미널에서 실행을 해보겠습니다. 

 

npm run dev 를 입력해줍니다. 

 

실행화면이 다음과 같이 나온다면 무탈하게 실행이 된 것입니다. 

 
 

 

get & post 

이번에는 서버와 클라이언트로써 요청과 응답을 주고 받는 것을 해볼게요. 

 

GET : 서버에 요청을 보내어 응답을 받아냅니다. 서버로부터 정보를 ‘가져오겠다’는 성격의 요청입니다.

url에 매개변수를 추가하여 요청합니다. 

 

POST : 서버에 요청을 보내어 작업을 수행합니다. 서버에 있는 데이터를 추가/수정/삭제 한 후에 응답을 받아냅니다.

서버의 정보를 ‘조작하겠다’는 성격의 요청입니다. url에 매개변수를 추가하지 않습니다. 

 

웹 페이지를 볼 때 주소창에 이런  식으로 기재된 페이지를 본 적 있으실 거예요.

 

index?  

 

? 뒤에 있는 값은 url의 매개변수로 이 값이 바뀌면 다른 값으로 넘어갑니다. 

이 페이지를 요청할 때 요청에 대한 추가 정보를 get 으로 받은 페이지입니다. 

즉 페이지에 url이 매개변수로 처리되는 것은 모두 get 요청에 의한 페이지라는 공통점이 있습니다. 

 

 

 

get 요청 시 데이터 처리하는 것을 직접 해볼게요. 

 

우선 index.html 을 만들어줍니다. 

지금까지 html 의  form에서 action 을 공란으로 두고 빈 양식만을 제출처 없이 submit 했다면, 

이번에는 지금 갓 만든 서버로 제출된 양식을 보내볼게요. 

 

<body>
    
    <form action="http://localhost:4003/" method = "get">
        <input type="text" placeholder="ID" name="userid"/> <br/>
        <input type="password" placeholder="PW" name="userpw"/> <br/>
        <input type="submit" value="로그인"/><br/>
    </form>
    
</body>

 

form의 action 에 적힌 값은 로컬 호스트의 값입니다. 

get 메소드를 이용해서 submit 으로 제출이 되면 4003 호스트는 폼 양식에 기재된 값을 가져갑니다. 

이제 자바스크립트의 값을 작성하겠습니다. 

 

const { response } = require("express")
const express = require("express")
const app = express()

//app.use() : 서버에 추가 동작을 정의하는 메소드 
// 추가 동작 = 함수 
// req 요청 res 응답

app.use( (req, res) => {    // 추가 동작을 미리 정의해놓는 메소드 
    console.log(req.query)  // 추가 동작에 해당하는 함수를 등록. query 요청 매개변수 
    res.send("요청 잘 받았어요!") // 응답을 보낸다  
} )

 

요청을 받았을 때 추가동작을 할 수 있도록 자바스크립트를 작성합니다. 

express가 가지고 있는 기능 중 get 메소드로 요청을 받았을 때 추가 동작을 정의합니다. 

 

직접 실행을 해보겠습니다. 

 

 

각 메소드와 문법 기능들에 익숙해져야겠습니다. ^^; 

이렇게 구동을 확인하고 나서는 터미널에서 ctrl + c 로 동작을 종료해주고, 

Go Live 또한 동작을 중지해주는 것이 좋습니다! 

반응형