邢台Node.js后端API开发入门教程
Node.js 简介
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,让你可以用 JavaScript 编写服务端代码。主要优势:
前后端统一语言:前端工程师可以快速上手后端开发,降低学习成本。高性能:事件驱动和非阻塞 I/O 模型,特别适合高并发场景。丰富的生态:npm 是全球最大的开源包仓库,几乎任何功能都有现成的模块。
适用场景:RESTful API 服务、实时应用(聊天室、在线协作)、Serverless 函数、构建工具和中间件。
环境搭建
安装 Node.js:从 nodejs.org 下载安装 LTS 版本(长期支持版)。安装完成后命令行输入 node -v 和 npm -v 确认安装成功。
项目初始化:mkdir my-api && cd my-api npm init -y (生成 package.json) npm install express nodemon dotenv
express:Web 框架;nodemon:代码变动自动重启;dotenv:读取环境变量。
基础服务搭建
创建 app.js:
const express = require('express'); const app = express(); const PORT = process.env.PORT || 3000;
app.use(express.json()); // 解析 JSON 请求体
app.get('/', (req, res) => { res.json({ message: 'Welcome to My API' }); });
app.listen(PORT, () => { console.log(`Server running on port ${PORT}`); });
启动:node app.js 或 npx nodemon app.js(开发模式)。
路由和控制器
随着项目变大,所有代码都写在 app.js 里会很乱。推荐按功能拆分:
routes/users.js(用户相关路由)、controllers/userController.js(业务逻辑)、models/User.js(数据模型)、middleware/auth.js(认证中间件)。
路由示例:router.get('/users', userController.getAllUsers); router.post('/users', userController.createUser); router.get('/users/:id', userController.getUserById);
数据库连接
MongoDB(NoSQL):用 mongoose 库。mongoose.connect('mongodb://localhost:27017/mydb'); 适合数据结构灵活、读写频繁的場景。
MySQL(关系型):用 mysql2 或 Sequelize ORM。适合数据结构固定、需要事务的场景。
PostgreSQL:功能强大的开源关系数据库,用 pg 或 Sequelize 连接。
认证和授权
JWT(JSON Web Token)是无状态认证的常用方案:
用户登录后生成 token(包含用户 ID 和过期时间)、客户端在后续请求的 Authorization header 中携带 token、服务端验证 token 有效性并提取用户信息。
注意:token 要设置合理的过期时间、敏感操作需要二次验证、token 泄露要有撤销机制。
部署
云服务器:购买阿里云/腾讯云的 ECS,安装 Node.js 和 PM2(进程管理器),上传代码后 pm2 start app.js 运行。
容器化:用 Docker 打包应用,便于跨环境部署和扩缩容。
Serverless:阿里云函数计算、腾讯云云函数等,按调用次数计费,适合波动较大的业务。