码迷,mamicode.com
首页 > Web开发 > 详细

Node.js HTTP模块

时间:2019-09-18 10:41:13      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:传输协议   执行   char   输出   fun   监听端口   方法   保存   mes   

章节


内置的HTTP模块

Node.js有一个名为HTTP的内置模块,支持超文本传输协议(HTTP)。

要导入HTTP模块,使用require()方法:

var http = require('http');

作为Web服务器的Node.js

HTTP模块可以用来创建HTTP服务器,侦听端口,并响应客户端。

使用createServer()方法创建HTTP服务器:

示例

var http = require('http');

//创建一个服务器对象:
http.createServer(function (req, res) {
  res.write('Hello World!'); //给客户端写一个响应
  res.end(); //结束响应
}).listen(8080); //服务器对象监听端口8080

传递给http.createServer()方法的函数,将在端口8080被访问时执行。

将上面的代码保存在一个名为“demo_http.js”的文件中,使用Node启动该文件:

启动demo_http.js:

C:\Users\Your Name>node demo_http.js

使用浏览器访问网址:http://localhost:8080,得到输出:

Hello World!

添加HTTP报头

返回响应时,可以设置HTTP报头:

示例

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
  res.write('Hello World!');
  res.end();
}).listen(8080);

res.writeHead()方法的第一个参数是状态代码,200表示一切正常,第二个参数是一个包含响应头的对象。

读取查询字符串

传递给http.createServer()的函数,有一个req参数,表示来自客户端的请求。

这个参数是一个对象(http.IncomingMessage 对象),有一个名为“url”的属性,包含了域名后面的url部分:

demo_http_url.js

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
  res.write(req.url);
  res.end();
}).listen(8080);

将上面的代码保存为“demo_http_url.js”文件,使用Node启动该文件:

启动demo_http_url.js:

G:\project\qikegu-demo\nodejs>node demo_http_url.js

当你打开下面的两个网址时,会看到不同结果:

http://localhost:8080/summer

输出:

/summer

http://localhost:8080/winter

输出:

/winter

拆分查询字符串

有一些内置模块可以拆分查询字符串,比如URL模块。

示例

拆分查询字符串:

var http = require('http');
var url = require('url');

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
  var q = url.parse(req.url, true).query;
  var txt = q.year + " " + q.month;
  res.end(txt);
}).listen(8080);

将上面的代码保存为“demo_querystring.js”文件,使用Node启动该文件:

启动demo_querystring.js:

G:\project\qikegu-demo\nodejs>node demo_querystring.js

浏览器访问网址:

http://localhost:8080/?year=2019&month=July

将输出:

2019 July

Node.js HTTP模块

标签:传输协议   执行   char   输出   fun   监听端口   方法   保存   mes   

原文地址:https://www.cnblogs.com/jinbuqi/p/11539902.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!