讲师:乌鸦哥
📝 让普通人也能听懂的后端开发课程
✨ 创建一个最简单的后端接口
💭 "后端"听起来很高大上
✅ 实际上比你想象的简单得多
🎯 这就是为什么要分开做的原因!
const http = require("http");
🔧 HTTP就是我们做网站后端必须要准备的"厨具"
const server = http.createServer((请求, 响应) => {
// 这里写服务器的逻辑
});
💡 注意:平时用英文request和response
📚 今天用中文是为了让大家更容易理解
🎯 这就是后端服务的核心逻辑!
💭 想象你去餐厅吃饭,服务员会问:
📝 这些都是服务员需要了解的"请求信息"
💻 当你在浏览器输入网址,浏览器会"敲门"问:
🍽️ 餐厅服务员的回复:
💻 后端服务器的回复:
✨ 就是一个完整的问答过程!
| 🙋♂️ 客户请求 | 💬 服务器响应 | 🍽️ 餐厅类比 |
|---|---|---|
| 📍 请求的URL地址 | 📄 返回的内容 | 点什么菜 → 上菜 |
| 🔧 请求方法(GET/POST) | 📊 状态码(200/404) | 堂食/外卖 → 成功/失败 |
| 🏷️ 请求头信息 | 🏷️ 响应头信息 | 客户要求 → 服务说明 |
| 📦 请求体数据 | 📦 响应体数据 | 特殊要求 → 实际菜品 |
console.log(请求.url); // 📍 请求的URL
console.log(请求.method); // 🔧 请求的方法
console.log(请求.headers); // 🏷️ 请求的头信息
🔍 这是程序员的"透视眼"
🔧 专门给程序员看的调试工具
👤 用户不需要听到我们的内心独白
💡 就像医生的听诊器,帮我们"听"程序的心跳
📍 "解放路123号" = 网站的域名
🚪 但你家有前门、后门、侧门
✨ 端口就像这些不同的门
🎯 不同的门有不同的用途
| 🚪 端口号 | 🎯 用途 | 🏠 类比 |
|---|---|---|
| 80 | 🌐 普通网站 | 🚪 前门(正门) |
| 443 | 🔒 安全网站(HTTPS) | 🛡️ 安全通道,有x光机 |
| 8000 | 🧪 我们的测试网站 | 🔧 后门(员工通道) |
| 3306 | 🗃️ 数据库服务 | 📦 货物通道 |
😊 为什么选8000?就是觉得这个数字顺眼!
| 📊 状态码 | 📦 快递状态 | 🌐 网站含义 |
|---|---|---|
| 200 | ✅ 包裹完好送达 | 🎉 请求成功,一切正常 |
| 404 | ❌ 地址不存在 | 🔍 页面不存在 |
| 500 | 💥 快递公司内部出错 | 🐛 服务器内部错误 |
| 403 | 🚫 收件人拒收 | 🔐 没有访问权限 |
😊 简单吧?就像看快递单号一样!
💡 记住这个规律,看到状态码就知道大概是什么情况
'Content-Type': 'text/plain; charset=utf-8'
💬 告诉浏览器:"我给你的是纯文本,用的是中文编码"
| 🏷️ Content-Type | 📄 内容类型 | 📦 包裹类比 |
|---|---|---|
| text/plain | 📝 纯文本 | 📄 普通信件 |
| text/html | 🌐 网页代码 | 📰 带格式的报纸 |
| application/json | 📊 JSON数据 | 📋 结构化表格 |
| image/jpeg | 🖼️ JPEG图片 | 📸 照片 |
server.listen(8000);
🏪 就像开店一样
🚪 把店门打开,挂上"营业中"的牌子
⏳ 等着客人上门
| 🏪 开实体店 | 💻 开后端服务 | 📝 代码实现 |
|---|---|---|
| 🧰 准备工具设备 | 🔧 引入HTTP模块 | require('http') |
| 📋 制定服务流程 | ⚙️ 创建服务器函数 | createServer() |
| 🤝 学会接待客人 | 📥 处理请求 | request参数 |
| 💬 学会回复客人 | 📤 发送响应 | response.end() |
| 🏪 开门营业 | ⚡ 启动服务器 | server.listen() |
| 📞 留下电话号码 | 🚪 监听端口号 | listen(8000) |
💡 就像店铺正常营业,客人可以正常进店消费
创建后端服务就像开了一家小餐馆
🌐 所有后端服务的基本套路
🏗️ 再复杂的网站,本质都是这个流程的扩展
💭 想象后面有个"数字小餐馆老板"在服务你
// 引入Node.js自带的http模块
const http = require('http');
console.log('✅ HTTP模块加载成功!');
const server = http.createServer((请求, 响应) => {
// 🔍 打印请求信息(调试用)
console.log('📍 访问地址:', 请求.url);
console.log('🔧 请求方法:', 请求.method);
console.log('🌐 用户浏览器:', 请求.headers['user-agent']);
// 🏷️ 设置响应头
响应.setHeader('Content-Type', 'text/plain; charset=utf-8');
响应.statusCode = 200;
// 📤 发送响应
响应.end('🎉 你好!欢迎来到我们的后端服务器!
这是你的第一个后端接口!');
});
const 端口 = 8000;
server.listen(端口, () => {
console.log('🎉 服务器已经启动啦!');
console.log('📍 访问地址:http://localhost:8000');
console.log('🌐 或者:http://127.0.0.1:8000');
console.log('💡 想要停止服务器?按 Ctrl+C');
console.log('🏪 数字小店正式开张!');
});
🎪 恭喜!你的第一个后端服务器诞生了!
🚀 如何让这个后端接口更加强大