Node.js 강좌 자료] Express 프로젝트 기본 구조

 

Node.js 강좌 자료] Express 프로젝트 기본 구조

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

 

Express 프로젝트 기본 구조

 

 - 프로젝트 디렉터리 및 파일

 


 

 

Node.js 강좌 자료] Express 프로젝트 생성 및 실행

 

Node.js 강좌 자료] Express 프로젝트 생성 및 실행

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

 

Express 프로젝트 생성 및 실행

 

 - 프로젝트 생성
  : express HelloExpress

 - 관련 모듈 설치
  : cd HelloExpress
    npm HelloExpress

 - 프로젝트 실행
  :SET DEBUG=HelloExpress:*
   npm start

 - 실행확인

 

Node.js 강좌 자료] Express 프레임 워크

 

Node.js 강좌 자료] Express 프레임 워크

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

 

Express 프레임 워크

 - fs, stream, http 등 Node.js의 핵심 모듈을 내장한 경량 웹 프레임워크

 - npm registry에서 가장 인기 있는 모듈

 - 요청 라우팅, 정적 파일 서버, 뷰 엔진 통합 등 많은 커뮤니티 모듈 제공

 - 페이팔, 모질라 기반 로그인 시스템 등 매우 광범위한 영역에서 사용되고 있는  대중성 높은 프레임워크

 - 라우터, 라우트, 미들웨어 등 세 가지 주요 요소로 구성

 - 설치
> npm install –g express-generator

 

Node.js 강좌 자료] connect-multiparty 미들웨어

 

Node.js 강좌 자료] connect-multiparty 미들웨어

 

 


실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

connect-multiparty 미들웨어


 - multipart/form-data 인코딩 방식의 데이터 전송을 처리하는 미들웨어
 »외부 모듈이기 때문에 직접 설치해서 사용
$ npm install connect-multiparty

 - 예제


const multipart = require('connect-multiparty’)

const app = express()

app.use(multipart({ uploadDir: dirname + '/multipart' }))

app.get('/', (req, res) => {
    res.render('upload', { title: 'Upload Page'})
})

app.post('/upload', (req, res) => {
    const comment = req.body.comment
    const imageFile = req.files.image
    if (imageFile) {
        const name = imageFile.name
        const path = imageFile.path
        const type = imageFile.type
        const fs = require('fs')

 if (type.indexOf('image') != -1) {
            const outputPath =
                __dirname + '/multipart/' + Date.now() + '_' + name
            fs.rename(path, outputPath, (err) => {
                res.redirect('/')
            })
        } else {
            fs.unlink(path, (err) => {
                res.sendStatus(400)
            })
        }
    } else {
        res.sendStatus(404)
    }
})

 

Node.js 강좌 자료] body-parser 미들웨어

 

Node.js 강좌 자료] body-parser 미들웨어

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

 

body-parser 미들웨어

 

 

 
- POST 요청 데이터를 추출하는 미들웨어
 »외부 모듈이기 때문에 별도 설치해서 사용
 $ npm install body-parser
 »body-parser를 사용하면 request 객체에 body 속성이 추가됨


 - 예제
const express = require('express')
const morgan = require('morgan')
const bodyParser = require('body-parser')
const cookieParser = require('cookie-parser')
const session = require('express-session')
const app = express()
const port = 8081

app.set('view engine', 'ejs')
app.set('views', __dirname + '/views')

app.use(bodyParser.urlencoded({ extended:false }))
app.use(cookieParser())
app.use(morgan({ format: 'dev', immediate: true }))
app.use('/',express.static('./html'))

const cookieName = 'connect.sid'
app.use(session({
    name: cookieName,
    secret: 'session secret',
    resave: true,
    saveUninitialized: false
}))
app.listen(port, () => {
    console.log(`기동했습니다. http://localhost:${port}`)
})

app.get('/', (req, res) => {
    const username = req.session.username
    res.render('index', { title: 'Login Page', username: username })
})

app.post('/login', (req, res) => {
    const username = req.body.username;
    const password = req.body.password;

    if (username == 'oraclejava' && password == '1234') {
        req.session.username = username;
        res.redirect('/')
    } else {
        res.render('index', { title: 'Login Page', error: '사용자이름이나 비번을 다시 입력해 주십시오' })
    }
})

app.post('/logout', (req, res) => {
    req.session.destroy()
    res.clearCookie(cookieName)
    res.redirect('/')
})

 

Node.js 강좌 자료] express-session 미들웨어

 

Node.js 강좌 자료] express-session 미들웨어

 

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

express-session 미들웨어

 

 

 - 서버 영역에 정보를 저장하는 기술
 »외부 모듈이기 때문에 직접 설치해서 사용
 $ npm install express-session

 - 예제
var express = require('express');
var session = require('express-session');

var app = express();

app.use(session({
secret: 'secret key',  resave: false,  saveUninitialized: true,  cookie: {
maxAge: 60 * 1000
}
}));

app.use(function (request, response) {  request.session.now = (new Date()).toUTCString();  response.send(request.session);
});

app.listen(8081, function () {
console.log('Server running at http://127.0.0.1:8081');
});

 

Node.js 강좌 자료] cookie-parser 미들웨어

 

Node.js 강좌 자료] cookie-parser 미들웨어

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

cookie-parser 미들웨어

 

 - 쿠키 정보를 읽고 관리하는 미들웨어
» 외부 모듈이기 때문에 별도 설치해서 사용
$ npm install cookie-parser

»cookie-parser를 사용하면 request, response 객체에 cookies 속성과 cookie()  메서드가 추가됨


 - 예제
var express = require('express');
var cookieParser = require('cookie-parser');
var app = express();  app.use(cookieParser());

app.get('/getCookie', function (request, response) {
response.send(request.cookies);
});

app.get('/setCookie', function (request, response) {  response.cookie('string', 'cookie');  response.cookie('json', {
name: 'cookie',
property: 'delicious'
});
response.redirect('/getCookie');
});
app.listen(8081, function () {
console.log('Server running at http://127.0.0.1:8081');
});


 - 결과 확인

브라우저를 열고
http:/localhost:8081/setCookie 요청을 전송

 

 

Node.js 강좌 자료] morgan 미들웨어

 

Node.js 강좌 자료] morgan 미들웨어

 

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

morgan 미들웨어

 

 - 웹 요청에 대해 로그를 출력하는 미들웨어
» 외부 모듈이기 때문에 별도 설치해서 사용
$ npm install morgan

 - 예제
const express = require('express')
const morgan = require('morgan')
const app = express()
const port = 8081

app.listen(port, () => {
    console.log(`기동했습니다. http://localhost:${port}`)
})
app.use(morgan({ format: 'combined', immediate: true }))
app.use('/',express.static('./html'))

서버 실행 후 브라우저로 요청을 보내고 서버측 콘솔 메시지 확인

Server running at http://127.0.0.1:8081
GET + Sun, 15 Oct 2017 10:43:42 GMT
GET + Sun, 15 Oct 2017 10:43:50 GMT

 - 로그 출력 형식 토큰
» 로그 출력 형식을 지정하기 위한 토큰 제공

 

 

» 미들웨어 토큰 조합은 미들웨어 토큰 여러 개를 조합해서 미리 만들어 둔 형식

 

+ Recent posts