📅  最后修改于: 2023-12-03 15:27:40.423000             🧑  作者: Mango
在 Node.js 中,网络编程是一项非常重要的技能。作为一名程序员,在开发网络应用程序时,经常需要处理网络请求和响应,而 Node.js 提供了许多模块和库来简化这个过程。本测验将涵盖一些 Node.js 中与网络编程相关的知识,包括如何创建和监听服务器,如何发送和接收 HTTP 请求和响应等。
以下代码段可以在 Node.js 中创建一个 HTTP 服务器并将其绑定到端口号 3000:
const http = require('http');
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello, world!\n');
});
server.listen(3000, () => {
console.log('Server running on http://localhost:3000/');
});
请你在上面的代码段基础上实现一个简单的 Web 服务器,使其能够处理 GET 请求,并返回一个 HTML 页面。HTML 页面的内容如下:
<!DOCTYPE html>
<html>
<head>
<title>Hello, world!</title>
</head>
<body>
<h1>Hello, world!</h1>
<p>This is a test page.</p>
</body>
</html>
提示:
fs
模块来读取 HTML 页面的内容。res.setHeader()
方法来设置 HTTP 响应头。res.write()
方法来写入 HTTP 响应体。res.end()
方法来结束 HTTP 响应。以下是实现一个简单的 Web 服务器的代码:
const http = require('http');
const fs = require('fs');
const server = http.createServer((req, res) => {
if (req.method === 'GET' && req.url === '/') {
fs.readFile('index.html', (err, data) => {
if (err) {
res.statusCode = 500;
res.setHeader('Content-Type', 'text/plain');
res.end('Internal Server Error\n');
} else {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/html');
res.write(data);
res.end();
}
});
} else {
res.statusCode = 404;
res.setHeader('Content-Type', 'text/plain');
res.end('Not Found\n');
}
});
server.listen(3000, () => {
console.log('Server running on http://localhost:3000/');
});
该服务器会监听端口号为 3000 的 HTTP 请求,并根据请求方法和路径来处理请求。如果请求方法为 GET,且路径为 /
,则返回 HTML 页面,否则返回 404 错误。HTML 页面的内容来自于 index.html
文件,如果文件读取出现错误,则返回 500 错误。