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

node.js获取请求参数的方法和文件上传的更多相关文章

  1. js 禁止表单提交的方法(文件上传)

    添加图片上传的表单,在form 添加属性onsubmit,提交之前会执行其中的方法,若返回FALSE,不会提交,返回TRUE,才会提交 <form method="post" ...

  2. (转)用JS获取地址栏参数的方法(超级简单)

    转自http://www.cnblogs.com/fishtreeyu/archive/2011/02/27/1966178.html 用JS获取地址栏参数的方法(超级简单) 方法一:采用正则表达式获 ...

  3. js获取url参数的方法

    js获取url参数的方法有很多. 1.正则分析 function getQueryString(name) { var reg = new RegExp("(^|&)" + ...

  4. springMvc源码学习之:spirngMVC获取请求参数的方法2

    @RequestParam,你一定见过:@PathVariable,你肯定也知道:@QueryParam,你怎么会不晓得?!还有你熟悉的他 (@CookieValue)!她(@ModelAndView ...

  5. struts2获取请求参数的三种方式及传递给JSP参数的方式

    接上一篇文章 package test; import com.opensymphony.xwork2.ActionSupport; import javax.servlet.http.*; impo ...

  6. node.js+express+jade系列六:图片的上传

    安装npm install formidable 先把文件上传到临时文件夹,再通过fs重命名移动到指定的目录即可 fs.rename即重命名,但是fs.rename不能夸磁盘移动文件,所以我们需要指定 ...

  7. SpringMVC框架笔记02_参数绑定返回值文件上传异常处理器JSON数据交互_拦截器

    目录 第1章 高级参数的绑定 1.1 参数的分类 1.2 数组类型的参数的绑定 1.3 集合类型的参数的绑定 第2章 @RequestMapping的用法 2.1 URL路径映射 2.2 请求方法限定 ...

  8. 鸿蒙的js开发部模式18:鸿蒙的文件上传到python服务器端

    1.首先鸿蒙的js文件上传,设置目录路径为: 构建路径在工程主目录下: 该目录的说明见下面描述: 视图构建如下: 界面代码: <div class="container"&g ...

  9. resumable.js —— 基于 HTML 5 File API 的文件上传组件 支持续传后台c#实现

    在git上提供了java.nodejs.c#后台服务方式:在这里我要用c#作为后台服务:地址请见:https://github.com/23/resumable.js 我现在visual studio ...

随机推荐

  1. Hbase之IP变更后无法启动问题解决

    # 修改hbase IP配置文件地址:/opt/hbase-1.1.13/conf/hbase-site.xml <property> <name>hbase.zookeepe ...

  2. 苹果ATS 豁免摆乌龙?

    现象 我们的App已经完成了NA部分的ATS适配.网页端由于有使用到第三方的页面,所以开启了网页的豁免权限.关于如何开启豁免及方法,可以参考喵神的Blog最终,我们的适配参数为: NSAllowsAr ...

  3. KUR-Couriers

    题目链接: QwQ Solution: 以权值为下标,对每个点建树 对于x点,以它为根的树涵盖的是1到x区间内每个数出现的次数 Code: #include<bits/stdc++.h> ...

  4. NOIP2017 列队——动态开点线段树

    Description: Sylvia 是一个热爱学习的女♂孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. Sylvia 所在的方阵中有n×m名学生,方阵的行数为  ...

  5. [Coci2015]Kamp

    Description 一颗树n个点,n-1条边,经过每条边都要花费一定的时间,任意两个点都是联通的. 有K个人(分布在K个不同的点)要集中到一个点举行聚会. 聚会结束后需要一辆车从举行聚会的这点出发 ...

  6. Java 使用 Enum 实现单例模式

    在这篇文章中介绍了单例模式有五种写法:懒汉.饿汉.双重检验锁.静态内部类.枚举.如果涉及到反序列化创建对象时推荐使用枚举的方式来实现单例,因为Enum能防止反序列化时重新创建新的对象.本文介绍 Enu ...

  7. django-simple-captcha 验证码插件

    官方文档:http://django-simple-captcha.readthedocs.io/en/latest/usage.html#installation github:https://gi ...

  8. python中的无参装饰器和有参装饰器

    python中的无参装饰器和有参装饰器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 装饰器特点: 1>.开放封闭原则,即对扩展是开放的,对修改时封闭的: 2>.装饰器 ...

  9. nodejs读取json文件,写入mongodb数据库

    最近又一点时间,开始使用mongodb存储json模型文件,然后可以实现模型文件的在线编辑和管理.今天上午实现了json文件入库的代码,如下: var fs=require("fs" ...

  10. Codeforces 835E. The penguin's game

    http://codeforces.com/problemset/problem/835/E 题意: 这是一道交互题 有n个数,其中有2个y,n-2个x 每次你可以询问若干个数的异或和,从而得出y的位 ...