get:

前台代码:

<body>
<h1>登录</h1>
<form action="/dologin" method="get">
账号<input type="text" name="username">
密码<input type="text" name="password">
<input type="submit" value="登录">
</form>
</body>

参数传递通过URL传值:

点击登录之后:

后台获取数据代码:

var http = require("http")
var url = require("url")
var ejs = require('ejs')
http.createServer(function (req, res) {
res.writeHead(200, {"Content-Type": "text/html;charset='utf-8'"})
var allUrl = req.url;
var parseUrl = url.parse(allUrl,true);
var path = parseUrl.pathname;
if (path == "/login") {//显示登录页面
ejs.renderFile("views/loginPage.ejs",{},function (err,data) {
res.end(data)
})
} else if (path == "/dologin") {//执行登录操作
//后台获取前台get传值数据
console.log(parseUrl.query);//{ username: '111', password: '222' }
res.end("dologin")
} else {//显示index页面
ejs.renderFile("views/index.ejs",{},function (err,data) {
res.end(data)
})
}
}).listen(8000)

post:

前台代码:

<h1>登录</h1>
<form action="/dologin" method="post">
账号<input type="text" name="username">
密码<input type="text" name="password">
<input type="submit" value="登录">
</form>

点击登录之后url里面没有传值:而是在头文件里面传值

后台获取数据代码:

var http = require("http")
var url = require("url")
var ejs = require('ejs')
http.createServer(function (req, res) {
res.writeHead(200, {"Content-Type": "text/html;charset='utf-8'"})
var allUrl = req.url;
var parseUrl = url.parse(allUrl,true);
var path = parseUrl.pathname;
//获取前台的传值方式get还是post
var method=req.method.toLowerCase();
console.log(method);
if (path == "/login") {//显示登录页面
ejs.renderFile("views/loginPage.ejs",{},function (err,data) {
res.end(data)
})
} else if (path == "/dologin"&&method=='get') {//执行登录操作
//后台获取前台get传值数据
console.log(parseUrl.query);//{ username: '111', password: '222' }
res.end("dologin")
} else if (path == "/dologin"&&method=='post') {//执行登录操作
//后台获取前台post传值数据
var postStr='';
req.on("data",function (chunk) {//注意这里回调函数只写一个参数
postStr+=chunk;
})
req.on("end",function (err,chunk) {
console.log(postStr);//username=111&password=222
//后台向前台输出js逻辑:
res.end("<script>alert('登录成功!');history.back()</script>")
})
} else {//显示index页面
ejs.renderFile("views/index.ejs",{},function (err,data) {
res.end(data)
})
}
}).listen(8000)

二十二、Node.js-get&post的更多相关文章

  1. Bootstrap入门(二十九)JS插件6:弹出框

    Bootstrap入门(二十九)JS插件6:弹出框 加入小覆盖的内容,像在iPad上,用于存放非主要信息 弹出框是依赖于工具提示插件的,那它也和工具提示是一样的,是需要初始化才能够使用的 首先我们引入 ...

  2. Bootstrap入门(二十八)JS插件5:工具提醒

    Bootstrap入门(二十八)JS插件5:工具提醒 工具提示在使用过程中比较常见,但是实现起来有些麻烦,而bootstrap则很好地解决了这个问题. 我们来写一个简单的实例 先引入CSS文件和JS文 ...

  3. Bootstrap入门(二十五)JS插件2:过渡效果

    Bootstrap入门(二十五)JS插件2:过渡效果 对于简单的过渡效果,只需将 transition.js 和其它 JS 文件一起引入即可.如果你使用的是编译(或压缩)版的bootstrap.js  ...

  4. Web 前端开发精华文章推荐(HTML5、CSS3、jQuery)【系列二十二】

    <Web 前端开发精华文章推荐>2014年第一期(总第二十二期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML ...

  5. Bootstrap <基础二十二>超大屏幕(Jumbotron)

    Bootstrap 支持的另一个特性,超大屏幕(Jumbotron).顾名思义该组件可以增加标题的大小,并为登陆页面内容添加更多的外边距(margin).使用超大屏幕(Jumbotron)的步骤如下: ...

  6. WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[中篇]

    原文:WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[中篇] 在[上篇]中,我们分别站在消息交换和编程的角度介绍了SOAP Fault和FaultException异常.在服务执行过 ...

  7. 微信小程序把玩(二十二)action-sheet组件

    原文:微信小程序把玩(二十二)action-sheet组件 action-sheet组件是从底部弹出可选菜单项,估计也是借鉴IOS的设计添加的,action-sheet有两个子组件, action-s ...

  8. [分享] IT天空的二十二条军规

    Una 发表于 2014-9-19 20:25:06 https://www.itsk.com/thread-335975-1-1.html IT天空的二十二条军规 第一条.你不是什么都会,也不是什么 ...

  9. 二十二、OGNL的一些其他操作

    二十二.OGNL的一些其他操作 投影 ?判断满足条件 动作类代码: ^ $   public class Demo2Action extends ActionSupport {     public ...

  10. VMware vSphere 服务器虚拟化之二十二桌面虚拟化之创建View Composer链接克隆的虚拟桌面池

    VMware vSphere 服务器虚拟化之二十二桌面虚拟化之创建View Composer链接克隆的虚拟桌面池 在上一节我们创建了完整克隆的自动专有桌面池,在创建过程比较缓慢,这次我们将学习创建Vi ...

随机推荐

  1. python:find()函数,字符串查询

    #find函数 # b中有a的元素则打印a对应的元素坐标(索引),否则打印-1 a = "abcd" b = "d" print(a.find(b))

  2. Proxmox VE 设置备忘

    现在PROXMOX 虚拟机一共两个(使用的是N3700 cpu的一个小机器主要为了省电.) 一个是ROS,经过折腾,IK8速度还不错就是资源占用比较大特比下载数据大时对CPU占用很大:OpenWRT不 ...

  3. VMWare中三种网络连接模式的区别

    VMWare中有桥接.NAT.host-only三种网络连接模式,在搭建伪分布式集群时,需要对集群的网络连接进行配置,而这一操作的前提是理解这三种网络模式的区别. 参考以下两篇文章可以更好的理解: V ...

  4. shell编程——内部变量

    常用的内部变量有:echo, eval, exec, export, readonly, read, shift, wait, exit 和 点(.) echo:将变量名指定的变量显示到标准输出 [r ...

  5. fork和vfork,exec

    一.fork:子进程是父进程的一个拷贝,子进程获得同父进程相同的数据,但是同父进程使用不同的数据段和堆栈段. 特点:调用一次,返回两次.成功则在父进程中返回子进程ID,在子进程中返回0.失败则返回-1 ...

  6. centos7 yum 安装 mysql

    CentOS7默认数据库是mariadb,配置等用着不习惯,因此决定改成mysql,但是CentOS7的yum源中默认好像是没有mysql的.为了解决这个问题,我们要先下载mysql的repo源. 1 ...

  7. Spark之 使用SparkSql操作mysql和DataFrame的Scala实现

    通过读取文件转换成DataFrame数据写入到mysql中 package com.zy.sparksql import java.util.Properties import org.apache. ...

  8. 572. Subtree of Another Tree 大树里包括小树

    [抄题]: Given two non-empty binary trees s and t, check whether tree t has exactly the same structure ...

  9. [C++] the pointer array & the array's pointer

    int *p[4]------p是一个指针数组,每一个指向一个int型的int (*q)[4]---------q是一个指针,指向int[4]的数组 --> type: int(*)[4] vo ...

  10. Cw210开发板

    达内培训嵌入式开发板 qt + kernel uboot toolchain