用node实现http服务器 三
来源:互联网 发布:单片机433m超再生模块 编辑:程序博客网 时间:2024/06/07 07:23
在前两篇中,我们学习了如何用node实现http服务器的基础创建方法。现在我们来说一下如何通过判断url来知道客户端所请求的资源。
我们首先来看下使用url包中parse返回来的是一个什么样子的值:
var http = require("http");var url =require("url"); //引入url模块var server = http.createServer(function (request,respnse) { var urlObj = url.parse(request.url); console.log(urlObj); respnse.end('url parse');});server.listen(8080);
运行之后,在浏览器起重发起请求,
在服务器控制台中则出现console的打印。
当我们浏览器请求的网址变成这样时 http://localhost:8080/quenry.html?abc=xyz
则打印的log就出现一些不同(红框部分则体现了url请求的内容):
上图返回的值中,query表示请求的参数;pathname表示请求的资源。
那下面我们就用上面的url返回的内容来进行一些比较复杂的操作。
在写服务器代码时,我们首先来进行一些准备:
写两个用来测试的html文件
1:index.html
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title></head><body><h1 style="background: cornflowerblue"> hello World!!<br> 这个是读取index.html文件显示出来的</h1></body></html>
2:query.html
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title></head><body><h1 style="background: cornflowerblue"> hello World!!<br> 这个是读取query.html文件显示出来的</h1></body></html>
var http = require("http");//引入http模块var url =require("url"); //引入url模块var fs = require("fs");//引入fs模块var server = http.createServer(function (request,respnse) { var urlObj = url.parse(request.url); console.log(urlObj); var query = urlObj.query; var pathName = urlObj.pathname; if(pathName = "/"){//当请求的网址为默认网址时 readFileAndResponse('/index.html',response) } else if(pathName === "/ajax"){//当请求的是一个Jason文件时,则返回一段Jason数据 response.end({"msg":"This is a json response."}); }else{ readFileAndResponse(pathName,response); } respnse.end('url parse');});function readFileAndResponse(path,response){ fs.readFile(path,'utf-8',function(err,data){ if(err){//当url想要请求的文件不存在的时候 response.writeHead(404);//对response的首部写入状态码。如404等。404代码所请求的链接不存在 response.end("File is not exist"); }else{//URL请求的文件存在 response.end(data); } });}server.listen(8080);
下面我们就这上面代码的集中实现形式来进行测试:
1:请求默认网页
2:请求一个存在的网页
3:请求一个ajax
4:请求一个不存在的页面,返回一个404的信号。
1 0
- 用node实现http服务器 三
- 用node实现http服务器 一
- 用node实现http服务器 二
- Node.js创建http服务器简单实现
- Node.js HTTP服务器
- Node建立HTTP服务器
- 【Node.js】实现一个最简单的HTTP服务器
- 【Node.js基础篇】(三)Node.js创建HTTP服务器
- 实现HTTP服务器的三种方法
- 用node.js实现http小爬虫
- Node.js小Http服务器
- Node.js 创建HTTP服务器
- Node.js 创建HTTP服务器
- Node.js创建HTTP服务器
- node.js详解Http服务器
- Node实现静态服务器
- 用C++实现HTTP服务器
- Android版Web服务器实现(三)HTTP响应
- C++为什么remove以后需要erase
- jsonp原理
- POJ1068
- iOS中收起键盘的方法和时机
- matlab 交易建模
- 用node实现http服务器 三
- 关于a different object with the same identifier value was already associated with the session解决方案
- 存储MODE(文件的操作模式)
- JDBC中使用Java8的日期LocalDate、LocalDateTime
- int 与 Integer 类型的比较
- c++笔记 第八章 标准IO库
- DVWA-1.9全级别教程之Command Injection
- AJAX 简单教程
- 232. Implement Queue using Stacks (Easy)