当前位置: 首页 > news >正文

Node.js 创建 HTTP 服务端

Node.js 创建 HTTP 服务端的用法总结,内容涵盖了 核心模块、基本用法、Express 简化用法、常见场景、错误处理、以及实用小贴士


✅ 一、Node.js 创建 HTTP 服务的方式

Node.js 使用内置的 http 模块即可快速创建一个 Web 服务,无需额外安装依赖。


✅ 二、最基础用法

// server.js
const http = require('http');const server = http.createServer((req, res) => {// 设置响应头res.writeHead(200, { 'Content-Type': 'text/plain' });// 发送响应内容res.end('Hello, Node.js HTTP Server!');
});// 启动服务器
server.listen(3000, () => {console.log('HTTP server is running at http://localhost:3000');
});

✅ 三、常用功能场景

1. 区分路由

const server = http.createServer((req, res) => {if (req.url === '/' && req.method === 'GET') {res.end('Home Page');} else if (req.url === '/about') {res.end('About Page');} else {res.statusCode = 404;res.end('Not Found');}
});

2. 处理 POST 请求数据(收集 body)

const server = http.createServer((req, res) => {if (req.method === 'POST' && req.url === '/data') {let body = '';req.on('data', chunk => {body += chunk;});req.on('end', () => {console.log('Received:', body);res.end('Data received');});} else {res.end('Only POST to /data supported');}
});

✅ 四、使用 Express 简化开发(推荐)

安装 Express:

npm install express

基础使用:

const express = require('express');
const app = express();app.use(express.json()); // 支持 JSON 请求体app.get('/', (req, res) => {res.send('Hello Express!');
});app.post('/data', (req, res) => {console.log(req.body);res.send('Data received!');
});app.listen(3000, () => {console.log('Express server running at http://localhost:3000');
});

✅ 五、错误处理 & 小技巧

1. 端口占用处理

监听报错:

server.on('error', (err) => {if (err.code === 'EADDRINUSE') {console.error('端口已被占用');} else {console.error('服务器错误:', err);}
});

2. 设置跨域(CORS)响应头

res.setHeader('Access-Control-Allow-Origin', '*');

3. 读取静态文件(搭配 fs)

const fs = require('fs');
if (req.url === '/index.html') {fs.readFile('./index.html', (err, data) => {res.setHeader('Content-Type', 'text/html');res.end(data);});
}

✅ 六、典型应用场景

场景示例
接收前端表单请求POST /submit-form
提供前端页面GET /index.html
API 服务接口GET /api/list
提供静态资源GET /images/logo.png
搭配 WebSocket 实现实时通信配合 ws 模块使用

✅ 七、服务启动后访问方式

本地访问:

http://localhost:3000

局域网访问(查看你的局域网 IP):

ifconfig | grep inet

✅ 八、总结一句话版本

使用 http.createServer() 快速创建原生服务,复杂逻辑推荐配合 express;Node HTTP 模块轻量强大,适合 API、Mock、调试服务等多种场景。

相关文章:

  • MACOS 上的 快捷指令怎么用,有哪些分享资源可以用
  • 数据结构——快排和归并排序(非递归)
  • vue2技术练习-开发了一个宠物相关的前端静态商城网站-宠物商城网站
  • FiftyOne 管理数据
  • 使用Java基于Geotools的SLD文件编程式创建与磁盘生成实战
  • LeetCode每日一题4.19
  • YOLO11改进-Backbone-使用MobileMamba替换YOLO backbone 提高检测精度
  • Flutter 弹窗队列管理:实现一个线程安全的通用弹窗队列系统
  • 基于尚硅谷FreeRTOS视频笔记——15—系统配制文件说明与数据规范
  • 考公:数字推理
  • 【NLP 66、实践 ⑰ 基于Agent + Prompt Engineering文章阅读】
  • 你的电脑在开“外卖平台”?——作业管理全解析
  • QML Rectangle 组件
  • 卷积神经网络基础(二)
  • 嵌入式单片机通过ESP8266连接物联网实验
  • 06-libVLC的视频播放器:推流RTMP
  • HCIP --- OSPF综合实验
  • office软件中word里面的编号库和列表库功能
  • 在 Node.js 中使用原生 `http` 模块,获取请求的各个部分:**请求行、请求头、请求体、请求路径、查询字符串** 等内容
  • C# 预定义类型全解析
  • 一条水脉串起七个特色区块,上海嘉定发布2025年新城行动方案
  • 电子产品已拆封,还能申请“七天无理由退货”吗?上海法院这样判
  • 京东:自21日起,所有超时20分钟以上的外卖订单全部免单
  • 一季度全社会用电量同比增长2.5%,3月增速显著回升
  • 男子拍摄女性视频后在网上配发诱导他人违法犯罪文字,已被警方行拘
  • 上海浦东召开高水平改革开放推进会,综合型企业出海服务平台启动