Node.js 提供了强大的网络模块,使得你能够轻松创建服务器和处理网络请求。以下是一些关于 Node.js 网络编程的基本概念和用法:

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