본문 바로가기
Back_end/node.js

node.js) 시작 - 서버 실행, get()

by nomfang 2021. 4. 20.
728x90
반응형

서버를 동작하기 위해서는

서버 프로그램에 사용할 폴더 내에서 터미널로 npm을 실행시켜 express 패키지를 받아야한다

 

터미널, cmd, powershell 등 에서

npm init 입력 후 묻는 사항에 대해 skip하기 위해 쭉 엔터를 눌렀다

npm install express 로 express 패키지 다운

완료 되면 express 버전과 함께 완료되었다는 메시지가 뜬다

 

요런 json파일이 생기면서 package.json 안에 express가 존재하면 잘 설치된 것

 

 

get과 post만으로도 서버를 만들 수 있다..?

 

get()의 인자로 url, callback 함수를 받는다

callback 함수의 인자로 요청, 응답을 받는다

 

callback 함수의 1번째 인자인 요청에는 사용자의 url 요청을 받아오는 객체가 생성되어있어

정보를 받아오고, 받아온 객체 내의 정보를 탐색하여 사용 가능

 

callback 함수의 2번째 인자인 응답에는 우리가 응답해야할 정보를 받는 객체가 생성되어 있고

객체 내의 메소드를 사용하여 응답할 내용을 전달할 수 있다  

 

const express = require('express'); 
const app = express();			// express 객체를 app 변수에 저장

app.get('/', (요청, 응답)=>{       // 기본 url(도메인)의 마지막엔 '/'가 들어가 있지만 생략해도 된다
    console.log(요청.query.name)    // get()의 첫 번째 인자에 '/'를 사용하면 기본 url과 같은 뜻
    console.log(요청.query.id)        
    console.log(요청.query.pw)
    응답.render('index.html',{title:'server'});
})

app.listen(3000,()=>{ 		// listen 함수로 server 실행 명령
				// 인자로 1. port번호, 2. 콜백 함수를 받는다
    console.log(`server start port : 3000`);
})

http://127.0.0.1:3000/?name=asdf&id=web77&pw=1234

url내의 도메인 뒤 /? 이후 name=asdf&id=web77&pw=1234 라는 값은

queryString이라고 부르며, url에 요청할 정보를 담는 변수

 

 

요청.query

요청이라는 객체(Object) 내에 query라는 객체를 생성하여 queryString이 키:값 형태로 들어감

 

구분자는 '&'를 사용하고 형식은 a = 'b'; 

요청의 query 객체는 사용자가 url의 도메인 뒤, /? 이후에 적은 queryString 정보를 키:값 형태로 저장하는 것

 

html에서 {{ }}를 사용하면 node.js get()에서 변수로 사용 가능

 

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">

    <title>Document</title>
</head>
<body>
    hello world! {{ title }}
    {{ name }}
    {{ id }}
    {{ pw }}
</body>
</html>

 

app.get('/', (요청, 응답)=>{

    응답.render('index.html',{
        title:'server',
        name:요청.query.name,
        id:요청.query.id,
        pw:요청.query.pw
    });
})

html  의 form 태그를 사용하면 get()의 요청을 연결하여 사용할 수 있다

form 내의 input 내용을 action으로 링크 이동을 하는 형태로 작동함

 

html의 구조를 node에서 그대로 사용하기 위해 nunjucks 패키지가 필요하다

npm install nunjucks 로 설치

<body>
    hello world! {{ title }} <br />
    {{ name }} <br /> <!-- get에서 받은 queryString의 name 값을 사용 -->
    {{ id }}   <br />
    {{ pw }} <br />
    
	<!-- form의 method 속성으로 get()과 연결 -->
    <form method="get" action="/"> <!-- action의 url로 정보가 전달됨, 전달된 정보가 포함된 url로 링크 이동 -->
        이름 : <input type="text" name="name"> <br /> <-- name 속성을 사용, get()내의 name과 연결됨 -->
        id : <input type="text" name="id"> <br /> <-- get()내의 id와 연결됨 -->
        pw : <input type="text" name="pw"> <br /> <-- get()내의 pw와 연결됨 -->
        <input type="submit" value="button"> <!-- submit 버튼은 input에서 받은 정보를 get으로 전달 -->
    </form>
</body>
const express = require('express');
const nunjucks = require('nunjucks');
const app = express();


nunjucks.configure('views',{ 
    express:app,
    autoescape:true, // 보안 문제로 무적권 true
});

app.set('view engine', 'html'); 

app.get('/', (요청, 응답)=>{
 

    응답.render('index.html',{ // 응답을 렌더링 한다 (html 문서를서를화면 
        title:'server',
        name:요청.query.name,
        id:요청.query.id,
        pw:요청.query.pw
    });
})

app.listen(3000,()=>{
    console.log(`server start port : 3000`);
})
반응형

'Back_end > node.js' 카테고리의 다른 글

node.js) nunjucks (html에 값 전달)  (0) 2021.04.22
node.js ) mysql 연결 및 사용(maria DB)  (0) 2021.04.22
node.js) 환경변수 설정 (dotenv)  (0) 2021.04.21
node.js) post()  (0) 2021.04.20
node.js 란?  (0) 2021.04.19

댓글