node.js获取请求参数的方法和文件上传

网友投稿 242 2022-11-30

node.js获取请求参数的方法和文件上传

var url=require('url')var qs=require('querystring')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 = require( ')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 = onRequest )server.listen( 3000 )initRotute()console.log('Server is Listening right now ..')

判断post 和get

后台代码var = require('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 = onRequest )server.listen( 3000 )console.log( 'Server is Listening...' )

前段:

文件上传:

var formidable=require('formidable')var sys = require('sys');( 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( '

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:使用自定义注解进行restful请求参数的校验方式
下一篇:jQuery中.parent和.parents的区别
相关文章

 发表评论

暂时没有评论,来抢沙发吧~