본문 바로가기

웹/Node.js

3. (Node.js) express로 웹 서버 만들기(1/2)

Express를 사용하여 웹 서버를 만들 것입니다.


서버를 만들기 위해 Node.js와 mongoose를 사용할 것입니다.


서버는 메인, 로그인, 회원가입, id 찾기, password 찾기로 구성된다.


프로젝트 구성







HTML



index.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html>
    <head>
        <meta charset= "UTF-8">
        <title>메인 페이지</title>
    </head>
    <body>
        <h1> 홈페이지에 오신 것을 환영합니다. </h1>
        <div><a href=./login.html>로그인 하기</a></div>
        <P><a href=./sign.html>회원가입 하기</a></p>
        <p><a href=./findid.html>id 찾기</a></p>
        <p><a href=./findpass.html>password 찾기</a></p>
    </body>
</html>
cs


메인페이지로 실행화면은 다음과 같다.



Sign.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!DOCTYPE html>
<html>
    <head>
        <meta charset= "UTF-8">
        <title>회원가입하기</title>
    </head>
    <body>
    <form method=post action='/process/adduser'>
        <h1> 회원가입 페이지 </h1>
        <p>ID : <input type=text name=id> </p>
        <p>PASS : <input type=password name=password> </p>
        <p>NAME : <input type=text name=name></p>
        <p>AGE : <input type=text name=age></p>
        <p><input type=submit value="가입하기"></p>
    </form>
    </body>
</html>
cs


POST 방식으로 사용했으며 action을 '/process/adduser'으로 줬다.

실행화면은 다음과 같다.



login.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html>
    <head>
        <meta charset= "UTF-8">
        <title>로그인</title>
    </head>
    <body>
    <form method=post action='/process/login'>
        <h1> 로그인 페이지 </h1>
        <p>ID : <input type=text name=id> </p>
        <p>PASS : <input type=password name=password> </p>
        <p><input type=submit value="login"></p>
    </form>
    </body>
</html>
cs

POST 방식을 사용했으며 action을 '/process/login'으로 줬다.
실행화면은 다음과 같다.


findid.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html>
    <head>
        <meta charset= "UTF-8">
        <title>id 찾기</title>
    </head>
    <body>
    <form method=post action='/user/findid'>
        <h1> 이름을 이용하여 id 찾기 </h1>
        <p>NAME : <input type=text name=name> </p>
        <p><input type=submit value="ID 찾기"></p>
    </form>
    </body>
</html>
cs


등록한 이름을 이용하여 id를 찾는 페이지이다.

POST 방식을 사용했으며 action을 '/user/findid'으로 줬다.

실행화면은 다음과 같다.



findpass.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<html>
    <head>
        <meta charset= "UTF-8">
        <title>패스워드 찾기</title>
    </head>
    <body>
    <form method=post action='/user/findpass'>
        <h1> 패스워드 찾기 </h1>
        <h1> (ID,NAME) </h1>
        <p>ID : <input type=text name=id> </p>
        <p>NAME : <input type=text name=name> </p>
        <p><input type=submit value="password 찾기"></p>
    </form>
    </body>
</html>
cs

등록한 id와 이름을 이용하여 password를 찾는 페이지이다.
POST 방식을 사용했으며 action을 '/user/findpass'으로 줬다.
실행화면은 다음과 같다.


미들웨어 사용하기



main.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// Express의 미들웨어 불러오기
var express = require('express'), http = require('http'), path = require('path');
var bodyParser = require('body-parser'), serveStatic = require('serve-static');
 
//express 객체 생성
var app = express();
 
 
// body-parser : post로 요쳥했을 때의 요청 파라미터 확인 방법을 제공
// body-parser를 이용해 application/x=www-form-urlencoded 파싱
app.use(bodyParser.urlencoded({extended:false}));
// body-parser를 이용해 application/json 파싱
app.use(bodyParser.json());
 
app.use('/public', serveStatic(path.join(__dirname,'HTML')));
 
http.createServer(app).listen(3000function(){
    console.log('Express server start....');
});
 
cs

serve-static을 사용하여 HTML 폴더를 /public의 path로 접근할 수 있도록 했다.
port는 3000을 사용했으며 각 html에 접근하기 위해서는 localhost:3000/public/'html 파일명'.html으로 접근해야 한다.
실행화면은 다음과 같다.

참고

모듈을 사용하기 위해 package.json을 만들고 플러그인을 설치해야 한다.

  1. package.json 만들기

    npm init 명령어 입력 후 프로젝트 정보를 입력 할 수 있는데 모두 Enter(기본 값)을 해도 무방하다.



    완료 후 다음과 같이 package.json 파일이 생성된 것을 확인 할 수 있다.





  2. 플러그인 설치

    > npm install express--save 명령어로 플러그인을 설치한다.
    (--save 옵션은 package.json 파일의 dependencies 항목에 플러그인 정보가 저장된다.)



    실행 후 package.json의 dependencies에 추가된 것을 확인 할 수 있다.


지금까지 Express를 사용하여 웹 서버를 만들기 위한 html (메인, 로그인, 회원가입, id 찾기, password 찾기)과 미들웨어 사용법을 살펴봤습니다.
이어서 (Node.js) express로 웹 서버 만들기(2/2)에서 라우터, 데이터베이스 연동을 통한 로그인, 회원가입 등 기능을 구현하겠습니다.