nodeJsの門をそっと叩いてください.最初のnodeJs入門プログラムです.

12485 ワード

たくさんの言語を話して勉強します.最近またnodejsを書き始めました.ちょっと疲れました.
概要
この文章は主に今日入門したnodejsのいくつかのコードを記録しています.後のコードはこのパターンで開発できるはずですが、後でフレームを使うはずですので、開発には違いがあります.
以下のコードの主なものは、入口プログラム>サーバ>>ルート>処理プログラムであり、要求反応もこのような論理に従って、層の深化を行っている.
ここは簡単な記録をしただけです.これからもっと良くなりますように.もっと詳しい内容はNode入門にアクセスしてください.
エントリプログラム(index.js)
//       
//        

var server = require('./server');
var router = require('./router');
var requestHandlers = require('./requestHandlers');

//handle     ,                     
var handle = {}
//         ,       switch if  
//           、  
handle['/'] = requestHandlers.start;
handle['/start'] = requestHandlers.start;
handle['/upload'] = requestHandlers.upload;
handle['/index'] = requestHandlers.index;
handle['/show'] = requestHandlers.show;

server.start(router.route,handle);

/*
   》》     》》    》》     
*/
サーバ(server.js)
//http   ,      ,               
//      ,                   ,            

//http  
var http = require('http');
var url = require('url');
//   router        
function start(route, handle){
    function onRequest(request,response){
        var postData = '';

        var pathname = url.parse(request.url).pathname;
        console.log('request for ' + pathname + ' received');

        //               ,            
        //      
        request.setEncoding('utf8');
        //      ,           
        //    
        request.addListener('data', function(postDataChunk){
            postData += postDataChunk;
            console.log('Receive Post data chunk "' + postData + '".');
        });

        //        
        request.addListener('end', function(){
            route(handle, pathname, response, postData);
        });

        response.writeHead(200, {'Content-type':'text/plain'});
        // response.write(content);
        // response.end();
    }
    //    ,         ,      listen,       
    //                   
    //             ,         
    http.createServer(onRequest).listen(8080);

    console.log('Server has started');
}

//   ,    (  )
exports.start = start;
ルート(router.js)
//    url                 
//       

function route(handle, pathname,response,postData){
    console.log('about to route a request for ' + pathname);
    if(typeof handle[pathname] == 'function'){
        //     ,   
        //              ,         
        handle[pathname](response, postData);
    }else{
        console.log('No request handler found for ' + pathname);
        response.writeHead(404, {'Content-Type':'text/plain'});
        response.write('404 Not found');
        response.end();
    }
}

exports.route = route;
処理プログラム(request Handles.js)
//    ,            

var exec = require('child_process').exec;
var querystring = require('querystring');
var fs = require('fs'); //          

function start(response, postData){
    console.log('start');
    function sleep(milliSeconds){
        var startTime = new Date().getTime();
        while(new Date().getTime() < startTime + milliSeconds);
    }
    //                
    //  10s
    exec('dir /s/a C:',{timeout:10000, maxBuffer:20000*1024},function(error,stdout,stderr){
        // sleep(10 * 1000);
        response.writeHead(200,{'COntent-type':'text/plain'});
        response.write(stdout);
        response.end();
    });
}

function index(response, postData){
    console.log('index');

    var body = '' +
        ''+
        ''charset=UTF-8" />'+
        ''+
        '
'
+ '