node.js獲取請求參數的方法和文件上傳


var  http=require('http')
var url=require('url')
var  qs=require('querystring')
http.createServer(onRequest).listen(3000)
function onRequest(res,resp)
{
    //第一種方式queryString模塊的方式獲取參數的方法
    var  arg=url.parse(res.url).query ;
    var nameValue=qs.parse(arg)['name']

    console.log('name:',nameValue)

   //利用Url模塊的方式獲取參數的方法
    var  arg2=url.parse(res.url,true).query
    console.log('age:'arg2.age)
        resp.writeHead(200)
        resp.write('Hellow Node.js')
        resp.end()

}

 如何處理請求的路由:

Node.js中處理路由的方法需要利用request.ur獲取客戶端的請求判斷

 

/**
 *
 * Created by longlingxiu on 15/2/10.
 */

var http = require( 'http' )
var handlePaths = []

/**
 * 初始化路由配置數組
 */
function  initRotute()
{

    handlePaths.push( '/' )
    handlePaths.push( '/login' )
    handlePaths.push( '/register' )

}

/**
 * 處理路由的邏輯
 * @param path
 */
function rotuteHandle( path )
{
    //  遍歷路由配置信息
    for ( var i in  handlePaths )
    {
        if(  handlePaths[i] == path )
        {
            console.log( '獲取到相同的路由信息:',handlePaths[i] )
            var rlt =  "request rotute is:" +  handlePaths[i]
            return  rlt
        }
    }

    return '404 Not Found'
}

/**
 *  服務器回掉函數
 * @param request
 * @param response
 */
function onRequest( request, response )
{
    var  requestPath = request.url
    console.log('請求的路徑是=>',requestPath )
    response.writeHead( 200, {
        'Content-Type':'text/plain'
    })

    var  responseContent = rotuteHandle( requestPath )
    response.write( responseContent  )
    response.end()
}


var server =  http.createServer( onRequest )
server.listen( 3000 )

initRotute()
console.log('Server is Listening  right now ..')

 判斷post 和get

后台代碼
var http = require('http')
var qs =  require('querystring')


/**
 * 路由控制的功能
 * @param path
 */
function rotuteHandle( request )
{
    if( request.url == '/login' && request.method.toLowerCase() == 'post' )
    {
        console.log('獲取login的post請求')

        return 'post method'
    }

    return 'get method'
}


/**
 * Server 回掉
 * @param request
 * @param response
 */
function onRequest(request,response)
{

    request.setEncoding('utf-8')
    response.writeHead(200,{

        'Content-Type':'text/plain'

    })

    if(request.url == '/login' && request.method.toLowerCase() == 'post'){

        var  postData = ""

        request.addListener('data', function (data) {
            console.log('獲取post請求參數中..')
            postData += data
        })

        request.addListener('end', function () {

            console.log('獲取post參數成功')

            console.log( postData )

            var content =  qs.parse(postData).text
            response.write( content )
            response.end()
        })
    }else{
        response.write( 'other method' )
        response.end()
    }
}


var server = http.createServer( onRequest )
server.listen( 3000 )

console.log( 'Server is Listening...' )

 前段:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<form method ="post" action="http://localhost:3000/login" >
			<textarea name="text"></textarea>
			<input type='submit' value="commit" />
		</form>
	</body>
</html>

 文件上傳:

var  formidable=require('formidable')
var http=require('http')
var sys = require('sys');

http.createServer(function ( request,  response )
{
    if( request.url == '/upload' && request.method.toLowerCase() == 'post' )
    {
        console.log( 'upload  requet ' )
        uploadRequest(request,response);
        return;
    }
    enterRequest(request,response)

}).listen(3000)


function enterRequest( request,  response )
{

    response.writeHead( 200, {  'Content-type' : 'text/html' });

    response.end(
        '<form action = "/upload" enctype="multipart/form-data" method="post" >' +
            '<input type  = "text" name = "title" /> <br>' +
            '<input type = "file" name="upload" multiple="multiple"/> <br/>'+
            '<input type="submit" value="Upload Now"/>' +
            '</form>'
    );

}


function uploadRequest( request,response )
{
    var form =  new formidable.IncomingForm();
    form.parse( request, function ( err, fields, files ) {

        response.writeHead(200, {'Content-type' : 'text/plain'});
        response.write('reviced upload file');

        response.end( sys.inspect(
            {
                fields : fields,
                files : files

            }) );
    })
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM