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
}) );
})
}
