1. 创建 HTTP 服务器:
使用 http 模块可以轻松创建一个简单的 HTTP 服务器。
const http = require('http');
const server = http.createServer((req, res) => {
// 处理请求
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello, World!\n');
});
const PORT = 3000;
const HOST = '127.0.0.1';
server.listen(PORT, HOST, () => {
console.log(`Server running at http://${HOST}:${PORT}/`);
});
2. 处理 HTTP 请求:
HTTP 服务器通过监听请求事件来处理客户端请求。
const http = require('http');
const server = http.createServer((req, res) => {
// 处理请求
if (req.method === 'GET' && req.url === '/') {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello, World!\n');
} else {
res.writeHead(404, { 'Content-Type': 'text/plain' });
res.end('Not Found\n');
}
});
const PORT = 3000;
const HOST = '127.0.0.1';
server.listen(PORT, HOST, () => {
console.log(`Server running at http://${HOST}:${PORT}/`);
});
3. 创建 TCP 服务器:
使用 net 模块可以创建 TCP 服务器。
const net = require('net');
const server = net.createServer((socket) => {
// 处理连接
socket.write('Hello, client!\n');
socket.end();
});
const PORT = 3000;
const HOST = '127.0.0.1';
server.listen(PORT, HOST, () => {
console.log(`Server running at ${HOST}:${PORT}`);
});
4. 创建 UDP 服务器:
使用 dgram 模块可以创建 UDP 服务器。
const dgram = require('dgram');
const server = dgram.createSocket('udp4');
server.on('message', (msg, rinfo) => {
// 处理消息
console.log(`Received message: ${msg} from ${rinfo.address}:${rinfo.port}`);
});
const PORT = 3000;
const HOST = '127.0.0.1';
server.bind(PORT, HOST, () => {
console.log(`Server running at ${HOST}:${PORT}`);
});
5. 发起 HTTP 请求:
Node.js 也可以用于发起 HTTP 请求。
const http = require('http');
const options = {
hostname: 'www.example.com',
port: 80,
path: '/',
method: 'GET',
};
const req = http.request(options, (res) => {
let data = '';
res.on('data', (chunk) => {
data += chunk;
});
res.on('end', () => {
console.log(data);
});
});
req.on('error', (error) => {
console.error(error);
});
req.end();
这些是 Node.js 中网络编程的基本用法。你可以根据具体需求使用不同的网络模块,处理不同类型的请求和连接。网络编程的复杂性取决于你的应用程序需求,但 Node.js 提供了简单而强大的工具来处理各种网络场景。
转载请注明出处:http://www.zyzy.cn/article/detail/4774/Node.js