node. js 웹 응용 기본 프레임 워 크

5352 단어 Webnode.js
주제 에 들 어가 면 우리 의 목적 은 node. js 를 바탕 으로 간단 한 웹 응용 을 구축 하 는 것 이다. 서로 다른 요구 에 따라 서로 다른 반응 을 할 수 있 고 목적 을 달성 하기 위해 서 우 리 는 적어도 이런 기능 이 필요 하 다.
1. 서버 가 사용자 의 요청 을 받 아들 일 수 있 습 니 다.
2. 라 우 터 가 사용자 의 요구 에 따라 서로 다른 응답 을 할 수 있 는 경로 가 있 습 니 다.
3. 일부 handle 은 사용자 의 request 를 분석 하고 결 과 를 사용자 에 게 되 돌려 줄 수 있 으 며 이 handle 은 router 에 의 해 호출 될 수 있 습 니 다.
위의 요구 에 도달 하려 면 우 리 는 이렇게 몇 개의 서류 가 필요 하 다.
1. index. js, 입구 파일 로
2. server. js, 서버 서버 로 서
3. router. js, 공유 기 로 서
4. handler. js, 실제 동작 으로 처리
아래 각 문건 을 일일이 분석 하 다
index.js
var server=require('./server');
var router=require('./router');
var handlers=require('./handler');//  server,router,handlers  

var handle={};
handle['/']=handlers.index;
handle['/index']=handlers.index;
handle['/postform']=handlers.postform;
handle['/postaction']=handlers.postaction;// handlers  url   ,    handle   

server.start(router.route,handle);//          router handle  server

server.js
var http=require('http');
var url=require('url');

function start(route,handle){
    var host='localhost';
    var port='1337';

    function onRequest(request,response){
        var postData='';
        route(request,response,postData,handle);
    }

    http.createServer(onRequest).listen(port,host);//       route

    console.log('Server Listen At Http://'+host+':'+port+'/');
}

exports.start=start;

router.js
var url=require('url');

function route(request,response,postData,handle){
    var path=url.parse(request.url).pathname;
    if(typeof handle[path]=='function'){
        handle[path](request,response);//       handle    
    }
    else{
        response.writeHead(404,{'Content-Type':'text/html'});
        response.write('your request is not exist!!!');
        response.end();
    }


}

exports.route=route;

handler.js
/**
 * Created with JetBrains WebStorm.
 * User: lehui
 * Date: 13-1-9
 * Time:   12:12
 * To change this template use File | Settings | File Templates.
 */
var url=require('url');
var exec=require('child_process').exec;
var querystring=require('querystring');

/**********************    ******************************/
function index(request,response){
    response.writeHead(200,{'Content-Type':'text/html'});
    var body='<html>'+
        '<head>'+
        '<meta http-equiv="Content-Type" content="text/html; '+
        'charset=UTF-8" />'+
        '</head>'+
        '<body>'+
        '<div><ul>'+
        '<li><a href="/">home</a></li>'+
        '<li><a href="/postform">post</a></li>'+
        '<li><a href="/iotest1">iotest1</a></li>'+
        '<li><a href="/iotest2">iotest2</a></li>'+
        '<li><a href="/fileuploadform">fileUploadForm</a></li>'+
        '</ul></div>'+
        '</body>'+
        '</html>';
    response.write(body);
    response.end();
}
/***************************post      **************************************/
function postForm(request,response){
    response.writeHead(200,{'Content-Type':'text/html'});
    var body = '<html>'+
        '<head>'+
        '<meta http-equiv="Content-Type" content="text/html; '+
        'charset=UTF-8" />'+
        '</head>'+
        '<body>'+
        '<form action="/postaction" method="post">'+
        '<textarea name="text" rows="20" cols="60"></textarea>'+
        '<input type="submit" value="Submit text" />'+
        '</form>'+
        '</body>'+
        '</html>';

    var path=url.parse(request.url).pathname;
    response.write(body);
    response.end();
}

function postAction(request,response){
    var formidable=require('formidable');
    var form=new formidable.IncomingForm();//          formidable  post      ,            
    form.parse(request,function(error,fields,files){
        if(!error){
            response.writeHead(200,{'Content-Type':'text/html'});
            response.write(JSON.stringify(fields));
            response.end();
        }
    });

}

exports.index=index;
exports.postform=postForm;
exports.postaction=postAction;

이로써 간단 한 웹 애플 리 케 이 션 을 만 들 수 있 습 니 다. 저 희 는 node index. js 로 서 비 스 를 시작 하면 ok 입 니 다. 그리고 포트 1337 에서 서 비 스 를 요청 하면 해당 하 는 웹 페이지 를 볼 수 있 습 니 다.http://localhost:1337/

좋은 웹페이지 즐겨찾기