打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
大牛笔记:node.js基础第三课时
每日头条
5天前
2017-03-23
[ 文章导读 ] http: 超文本传输协议,所有路由都是通过它来传输,通过它能够构建一个客户端与服务端连接的管道http模块: 能够构建服务器环境(模拟客户端)创建服务器类似 node.js基础(一) 文章中提到的var http = require("http");var url = require("url");var ser ...

http: 超文本传输协议,所有路由都是通过它来传输,通过它能够构建一个客户端与服务端连接的管道

http模块: 能够构建服务器环境(模拟客户端)

创建服务器

类似 node.js基础(一) 文章中提到的

var http = require("http");var url = require("url");var server = http.createServer(function(req, res){	console.log(req.url); // 打印请求的路径

实例1

使用from表单进行简单的前后台交互

首先创建三个文件, index.htmlform.html 以及 http.js (名字随意,具体是了解如何实现)。

index.html文件内容

<!DOCTYPE html><html>

form.html文件内容

<!DOCTYPE html><html>

http.js文件内容

var http = require("http");var url = require("url");var fs = require("fs");var server = http.createServer(function(req, res){	var urlObj = url.parse(req.url, true);	if (urlObj.pathname == "/" || urlObj.pathname == "/index.html") {		// 把本项目中的index.html读出来,写进响应res中

至此可以试一下打开http.js的模拟服务器,在浏览器输入 http://localhost:8080 进行一下相关操作看一下效果吧。

最终效果在终端能够如图所示就大功告成了,但是这里只有简单的两个页面交互,如果有许许多多的页面,每个页面都要去else if判断一下是不是太麻烦了,这里有个较为简便的方法,在 http.js 的文件中将else if改为如下:

else if (urlObj.pathname != "/favicon.ico") {	fs.createReadStream("." + urlObj.pathname).pipe(res);

这样就不用写很多pathname去一一匹配了~是不是很方便呢!

这里默认的传输方式是通过GET,那如果是POST该怎么写呢?

实例2

使用from表单的POST传输方式进行简单的前后台交互

还是实例1中的三个文件,将 form.html 文件的 form 标签里的属性更改为

<formaction="/post"method="post">

然后再将 http.js 更改为如下

var http = require("http");var url = require("url");var fs = require("fs");var queryString = require("querystring");var formidable = require("formidable");var server = http.createServer(function(req, res){	var urlObj = url.parse(req.url, true);	if (urlObj.pathname == "/" || urlObj.pathname == "/index.html") {		var rs = fs.createReadStream("index.html");

这样最终效果同GET方式一样能够获取到填写的用户名和密码,并且最终页面返回的结果是“你请求的地址是/post”

实例3

使用from表单的POST传输方式进行简单的图片上传的操作

这里同样是上述的三个文件,在 form.html 文件中加上上传文件的标签

<inputtype="file"name="fileup">

http.js 中也添加一段对post传输文件的操作,代码如下:

else if (urlObj.pathname == "/post") {	// 处理上传文件

此时可以测试一下上传一张图片看看能否在upload目录下找到同样的图片~

实例4

ajax请求的发送与接收

这里就不需要 form.html 文件了,将 index.html 加上一段 script 标签进行ajax请求发送,代码如下:

<script>

http.js 文件中的else if后再加上一段代码

else if (urlObj.pathname == "/ajax") {	// 接收了ajax传输的数据

最终同样在浏览器输入 http://localhost:8080 在终端就能收到ajax发送出来的user和pass两个字段了~

实例5

http模拟客户端

这里我们再新建一个名为 request.js 的文件,这里提供get和post两种写法,代码如下:

var http = require("http");

然后在 http.js 文件中再添加一段else if代码

else if (urlObj.pathname == "/request") {	// get方式

然后我们先开启一下 http.js 这个模拟服务器,在运行 request.js 进行模拟请求,我们会发现 request.js 会返回出

{“err”: 0, “msg”: “请求的内容”}

,然后服务器会返回出

user=xxx&pass=111 请求结束

。如果出现这种结果就说明发送成功了!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Node.js路由改造
node.js留言板案例
前端编码规范(1)
node.js从入门到菜鸟——资源无法载入?你需要学会地址解析
利用同构JavaScript轻松解析URL
Node.js 路由
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服