LANGUAGE/NODEJS

NODEJS - 기본세팅 / 4, 리다이렉션, request, response 확장

보겸삼촌 2019. 7. 19. 15:01

# 개발환경

os : windows 10 Pro 64-bit

node-v : v10.16.0

npm-v : 6.9.0

ide : visual Studio Code

 

 

* 리다이렉션하는 방법 등

 

 /**
  * 라우팅 (app.get, url)을 통해서 라우팅 되는 곳 마다 다른 응답
  * 고정된 경로 뿐 아니라 정규 표현식을 만들어 다양하고 복잡한 경로로 매핑
  */
 
//Express를 변수에 담기
var express = require("express");
 
//Express 호출 후 새로운 Express 애플리케이션을 변수(app)에 넣음
var app = express();

//Nodejs 내장 모듈
var http = require("http");
var path = require("path");

//로그 모듈
var logger = require("morgan");


//logger("short") = 함수 반환
//short를 통해 간단한 로그를 남김 
app.use(logger("short"));


//path.resoleve : os에 따라 /public 혹은 \public 처럼 분리자가 다를 수 있지만 이 부분을 처리해 준다.
//__dirname : 현재 위치를 가리키는 node 전역변수
var publicPath = path.resolve(__dirname);
app.use(express.static(publicPath));

console.log(publicPath);


//Routing
app.get("/", function(request, response){
    response.writeHead(200, {"Content-Type":"text/plain; charset=utf-8"});
    response.end("/ 경로로 접근...!");
});

//response/request 확장
app.get("/route", function(request, response){
    
    //리다이렉트할 경로
    //예1) /hello/world
    //예2) "http://bogyum-uncle.tistory.com/2"
    response.redirect("/");
    // response.redirect("http://bogyum-uncle.tistory.com/2");

    //TypeError : path는 절대경로여야 함
    //방법 1 : response.sendFile("C:/nodeSetting/resource/img/image.png");
    //방법 2 : response.sendFile(publicPath + "\\resource\\img\\image.png");
    
    //요청한 곳의 IP 주소를 받을 수 있음
    //request.id;
});

app.use(function(request, response){
    //4XX : 클라이언트 오류
    response.statusCode = 404;
    response.end("404 Error!");
});

http.createServer(app).listen(3000);

 

 

 2. 브라우저 주소창에 localhost:3000/route 를 입력하면 localhost:3000/ 로 리다이렉션 되는 것을 확인할 수 있음