Node http模块学习:基本用法

1. Node http模块介绍

Node.js是一种服务器端JavaScript解释器,它允许开发人员使用Node.js http模块来构建Web服务器和网络应用程序。http模块可以处理HTTP请求和响应。通过http模块,可以实现创建Web服务器、获取客户端的请求、向客户端发送响应等功能。

2. 创建http服务器

2.1 http.createServer()

我们可以使用http.createServer()方法来创建http服务器。下面是http.createServer()方法的语法。

const http = require('http');

http.createServer(function (req, res) {

// Handle request

}).listen(3000);

上面的代码可以创建一个HTTP server对象,并监听来自端口3000的请求。

强调:回调函数在服务器每次接收到请求时被调用,并用请求和响应对象作为参数。请求对象req包含客户端请求相关的参数和方法,例如URL、HTTP方法等。响应对象res包含服务器响应相关的参数和方法,例如发送响应头、结束响应等。

2.2 req和res对象

前面已经提到,当有请求到来时,回调函数的参数中,req和res对象起着非常重要的作用。下面,我们分别了解一下这两个对象的常用属性和方法。

2.2.1 req对象

req对象代表客户端发送给服务器的请求。

req.url:请求的URL.

req.method:请求的HTTP方法,例如GET或POST等。

req.headers:请求头信息。

2.2.2 res对象

res对象代表服务器要发送给客户端的响应。

res.end():结束响应,即向客户端发送响应数据。

res.writeHead():设置响应头信息。

res.write():向响应中写入数据。

3. 创建路由

路由是指将客户端请求映射到服务器上的响应。在Node.js中,我们可以使用http.createServer()和req.url来实现路由功能。下面是一个简单的路由例子:

const http = require('http');

http.createServer(function (req, res) {

if (req.url === '/') {

res.writeHead(200, {'Content-Type': 'text/plain'});

res.write('Hello World!');

res.end();

} else if (req.url === '/about') {

res.writeHead(200, {'Content-Type': 'text/html'});

res.write('

About us

');

res.end();

} else if (req.url === '/contact') {

res.writeHead(200, {'Content-Type': 'text/html'});

res.write('

Contact us

');

res.end();

} else {

res.writeHead(404, {'Content-Type': 'text/plain'});

res.write('404 Not Found');

res.end();

}

}).listen(3000);

上面的代码可以将根路径"/"、"about"和"contact"路由到不同的响应页面。

4. 使用第三方模块

在Node.js中,我们可以使用第三方模块来更快地构建Web服务器。下面是一个使用Express框架的例子:

const express = require('express');

const app = express();

app.get('/', function (req, res) {

res.send('Hello World!');

});

app.get('/about', function (req, res) {

res.send('

About us

');

});

app.get('/contact', function (req, res) {

res.send('

Contact us

');

});

app.listen(3000, function () {

console.log('Server started on port 3000');

});

上面的代码使用了Express框架,实现了与前面例子相同的功能。需要注意的是,使用Express框架可以更方便地处理路由和中间件,详细的使用文档可以查看Express官网。

5. 小结

本文介绍了Node.js http模块的基本用法,包括创建http服务器、req和res对象、创建路由以及使用第三方模块。Node.js作为一种服务器端JavaScript解释器,具有强大的网络开发能力,可以实现Web服务器和网络应用程序的开发。在使用Node.js时,开发人员可以根据自己的实际情况选择使用原生http模块或第三方模块,以提高开发效率。