You will be fine

<Node.js> 3. Server

by BFine
반응형

app.js


   var express = require('express')

  , routes = require('./routes')

  , user = require('./routes/user')

  , http = require('http')

  , path = require('path');


var app = express();


// all environments 환경설정

app.set('port', process.env.PORT || 3000); //env.PORT에 값이 있으면 그것을 쓰고 아니면 3000번 포트 사용

app.set('views', __dirname + '/views');//__dirname 현재 디렉토리 경로

app.set('view engine', 'jade'); //jade는 형식

app.use(express.favicon()); // app.use -> middle ware 등록 시키기 위한 메소드

app.use(express.logger('dev'));

app.use(express.bodyParser());

app.use(express.methodOverride());

app.use(app.router);

app.use(express.static(path.join(__dirname, 'public')));


// development only

if ('development' == app.get('env')) {

  app.use(express.errorHandler());

}


app.get('/', routes.index);  // html get 

app.get('/users', user.list);


http.createServer(app).listen(app.get('port'), function(){ // 서버 구동

  console.log('Express server listening on port ' + app.get('port'));

});




실행

      <실행 후 콘솔화면>


  < 접속 >


  < 접속 후 콘솔화면 >





1.Middle Ware


서버의 기능을 함수로 만들어 놓은 것 app.use(기능)


 var express=require("express"); // 서버구현

 var http=require("http");

 var path=require("path");

 

 var app=express(); // 실행



 app.use(function(req,res,next){ // 기능추가

console.log("first");

res.info=" Hello World!";

next(); // 다음 use 실행

 });


 app.use(function(req,res,next){ // 기능추가

console.log("second");

res.writeHead("200",{"Content-Type":"text/html;charset=utf8"  

});                                                                           // 글자 포멧 

res.end(res.info+" end"); // 종료

 });


 http.createServer(app).listen(3000,function(){ // 서버실행

console.log("start");

 });



실행


           



※ events.js ( events.js :183, throw er; listen eaddrinuse ::: 3000 ) 오류 -> 서버가 동시에 두개 이상 켜졌을때 발생





3.Router


   get 방식


app.get('/', routes.index); 

app.get('/users', user.list);   // 클라이언트의 요청을 전달


=====================================


var express=require("express"); // 서버구현

var http=require("http");

var path=require("path");


var app=express(); // 실행


app.use(express.static(path.join(__dirname,"public"))); // public 접근 필요없이 접근하게 함(하나의 루트처럼 만드는 것)


app.get("/login",function(req,res){ //login?id ~~ 에서 ? 뒤에 값들을 가져온다

console.log("login"); 

var id=req.param("id");  

var pw=req.param("pw");

res.writeHead("200",{"Content-Type":"text/html;charset=utf8"

});

res.write("id :"+id+" pw : "+pw); 

res.end();

});



http.createServer(app).listen(3000,function(){ // 서버실행

console.log("start");

});


      <h3> Hello World!</h3>

 <form action="/login" method="get">

 <input type="text" name="id">

 

 <input type="text" name="pw">

 <input type="submit" value="submit">

  </form>


   Post 방식


var body_Parser= require("body-parser");  // 외부모듈

app.use(body_Parser.urlencoded({extended : false})); // url 인코딩


app.post("/login",function(req,res){





실행





반응형

'공부(2018~2019) - 스킨변경전 > Node.js' 카테고리의 다른 글

<Node.js> 2. Event  (0) 2018.04.03
<Node.js> 1. Module  (0) 2018.04.03
<Node.js> 0. Basic  (0) 2018.04.02

블로그의 정보

57개월 BackEnd

BFine

활동하기