Node.js 有一个名为 HTTP 的内置模块,它允许 Node.js 通过超文本传输协议 (HTTP) 传输数据。
要包含 HTTP 模块,请使用require()
方法:
var http = require('http');
HTTP 模块可以创建一个 HTTP 服务器来侦听服务器端口并向客户端返回响应。
使用createServer()
创建HTTP服务器的方法:
var http = require('http');
//create a server object:
http.createServer(function (req, res) {
res.write('Hello World!'); //write a response to the client
res.end(); //end the response
}).listen(8080); //the server object listens on port 8080
运行示例 »
该函数传入http.createServer()
方法,当有人尝试通过端口 8080 访问计算机时将执行。
将上面的代码保存在名为 "demo_http.js" 的文件中,并启动该文件:
启动demo_http.js:
C:\Users\
Your Name>node demo_http.js
如果您在计算机上执行了相同的步骤,您将看到与示例相同的结果:http://本地主机:8080
如果来自 HTTP 服务器的响应应显示为 HTML,则应包含具有正确内容类型的 HTTP 标头:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('Hello World!');
res.end();
}).listen(8080);
运行示例 »
第一个论点res.writeHead()
method 是状态码,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'});
res.write(
req.url);
res.end();
}).listen(8080);
将上面的代码保存在名为 "demo_http_url.js" 的文件中并启动该文件:
启动demo_http_url.js:
C:\Users\
Your Name>node demo_http_url.js
如果您在计算机上执行了相同的步骤,则打开这两个地址时应该会看到两个不同的结果:
有内置模块可以轻松地将查询字符串拆分为可读部分,例如 URL 模块。
将查询字符串拆分为可读部分:
var http = require('http');
var url = require('url');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
var q = url.parse(req.url, true).query;
var txt =
q.year + " " +
q.month;
res.end(txt);
}).listen(8080);
将上面的代码保存在名为 "demo_querystring.js" 的文件中并启动该文件:
启动 demo_querystring.js:
C:\Users\
Your Name>node demo_querystring.js
地址:
http://localhost:8080/?year=2017&month=7 月
阅读有关 URL 模块的更多信息Node.js URL 模块章节。
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!