Node.js后端开发自学教程 | Node.js学习资源 | 免费在线课程

Node.js后端开发自学:开发者桌面前展示终端与JavaScript代码

一、Node.js是什么

很多学前端的朋友可能都有过这个疑问:JavaScript不是只能在浏览器里跑吗?怎么还能做后端?

其实Node.js就是让JavaScript脱离浏览器的运行时环境,它用Chrome V8引擎来执行JS代码,特点是事件驱动、非阻塞I/O,性能相当能打。简单说,你学会了Node.js,前端后端就都能写了,朝着全栈工程师的方向迈出一大步。

Node.js后端开发教程:双屏编写Express框架与RESTful API测试

为什么要学Node.js做后端

说实话,Node.js的优势挺实在的:

语言统一:前端后端都用JavaScript,学习成本低,上手快。

生态丰富:NPM上有海量的开源包,几乎你想实现的功能都有人做过。

前后端协作方便:接口设计、数据格式都好沟通。

适用场景广:做API服务、微服务、实时应用(聊天、游戏后端)都很合适。

二、Node.js自学环境准备

安装Node.js

学习Node.js的第一步就是把环境搭好,其实很简单:

Windows用户:去Node.js官网(nodejs.org)下载安装包,推荐LTS(长期支持版),一路下一步就完事了。

macOS用户:用Homebrew安装最方便,brew install node 搞定。

Linux用户:可以用apt或yum,或者直接下载二进制包。

装完之后打开命令行,输入 node -vnpm -v,能看到版本号就说明安装成功了。

开发工具选择

写Node.js代码其实用任何文本编辑器都行,但推荐这几个:

VS Code:微软出的免费编辑器,对Node.js支持很好,有智能提示、调试功能。

WebStorm:JetBrains出品,功能更强大,不过要付费。

新手建议先用VS Code,免费够用,等熟悉了再换也行。

三、Node.js核心基础

第一个程序

惯例先来写个Hello World,感受一下Node.js的运行方式:

javascript

// 创建文件 app.js
const http = require('http');

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello Node.js!\n');
});

server.listen(3000, '127.0.0.1', () => {
  console.log('服务器运行在 http://127.0.0.1:3000');
});

运行的话,在命令行输入 node app.js,然后打开浏览器访问localhost:3000就能看到了。

核心模块介绍

Node.js内置了很多实用的模块,不需要额外安装就能用:

fs模块:文件系统操作,读写文件就靠它。

javascript

const fs = require('fs');
// 读取文件
fs.readFile('test.txt', 'utf8', (err, data) => {
  if (err) throw err;
  console.log(data);
});

path模块:处理文件路径,跨平台开发必备。

javascript

const path = require('path');
const fullPath = path.join(__dirname, 'public', 'index.html');

http模块:创建Web服务器,上面Hello World例子用到了。

events模块:事件处理,Node.js很多功能都基于事件驱动。

四、NPM包管理

NPM(Node Package Manager)是Node.js的包管理工具,相当于前端npm的生态库中心,装Node.js的时候就自带了。

初始化项目

新建一个文件夹,然后进入命令行初始化:

bash

npm init -y

这样会在当前目录生成 package.json 文件,记录项目依赖信息。

安装第三方包

想用什么包,直接 npm install 就行:

bash

# 安装Express框架
npm install express

# 安装nodemon(代码改了自动重启)
npm install --save-dev nodemon

# 安装axios(发HTTP请求)
npm install axios

安装的包会出现在 node_modules 目录里,package.json 里的 dependencies 也会自动更新。

使用国内镜像

如果npm安装慢,可以换成淘宝镜像:

bash

npm config set registry https://registry.npmmirror.com

五、Express框架快速入门

虽然用原生的http模块能写服务器,但实际开发中大家都用Express,代码简洁,功能强大。

创建Express项目

bash

# 新建文件夹
mkdir my-express-app
cd my-express-app

# 初始化并安装Express
npm init -y
npm install express

# 创建入口文件
touch app.js

基础代码

javascript

const express = require('express');
const app = express();
const port = 3000;

// 中间件 - 解析JSON请求体
app.use(express.json());

// GET请求
app.get('/', (req, res) => {
  res.send('这是首页');
});

// GET带参数
app.get('/user/:id', (req, res) => {
  const userId = req.params.id;
  res.json({ id: userId, name: '小明' });
});

// POST请求
app.post('/user', (req, res) => {
  const { name, email } = req.body;
  res.json({ message: '用户创建成功', data: { name, email } });
});

// 启动服务器
app.listen(port, () => {
  console.log(`服务器运行在 http://localhost:${port}`);
});

运行 node app.js 就能看到效果了。

六、连接数据库

后端开发肯定要跟数据库打交道,这里介绍两种常见方案。

MongoDB数据库

MongoDB跟Node.js是黄金搭档,JSON风格的文档数据库,用起来很顺手。

安装mongoose包来操作MongoDB:

bash

npm install mongoose

连接和使用示例:

javascript

const mongoose = require('mongoose');

// 连接数据库
mongoose.connect('mongodb://localhost:27017/mydb', {
  useNewUrlParser: true,
  useUnifiedTopology: true
}).then(() => {
  console.log('数据库连接成功');
});

// 定义数据模型
const userSchema = new mongoose.Schema({
  name: String,
  email: String,
  age: Number
});

const User = mongoose.model('User', userSchema);

// 插入数据
const newUser = new User({ name: '张三', email: 'zhangsan@example.com', age: 25 });
newUser.save().then(() => console.log('用户创建成功'));

MySQL数据库

如果项目需要关系型数据库,可以用mysql2包:

bash

npm install mysql2

javascript

const mysql = require('mysql2/promise');

// 创建连接池
const pool = mysql.createPool({
  host: 'localhost',
  user: 'root',
  password: 'your_password',
  database: 'mydb',
  waitForConnections: true,
  connectionLimit: 10
});

// 查询数据
async function getUsers() {
  const [rows] = await pool.query('SELECT * FROM users');
  return rows;
}

七、RESTful API设计

做后端API服务,RESTful是现在最流行的设计风格。

什么是RESTful

简单说就是用HTTP动词表达操作意图,URL只表示资源:

HTTP方法操作示例
GET获取资源GET /users
POST创建资源POST /users
PUT更新资源PUT /users/1
DELETE删除资源DELETE /users/1

完整API示例

javascript

const express = require('express');
const app = express();
app.use(express.json());

// 模拟数据
let users = [
  { id: 1, name: '张三', email: 'zhangsan@example.com' },
  { id: 2, name: '李四', email: 'lisi@example.com' }
];

// 获取所有用户
app.get('/api/users', (req, res) => {
  res.json({ code: 0, data: users });
});

// 获取单个用户
app.get('/api/users/:id', (req, res) => {
  const user = users.find(u => u.id === parseInt(req.params.id));
  if (!user) return res.status(404).json({ code: 1, message: '用户不存在' });
  res.json({ code: 0, data: user });
});

// 创建用户
app.post('/api/users', (req, res) => {
  const newUser = {
    id: users.length + 1,
    name: req.body.name,
    email: req.body.email
  };
  users.push(newUser);
  res.json({ code: 0, data: newUser });
});

// 更新用户
app.put('/api/users/:id', (req, res) => {
  const user = users.find(u => u.id === parseInt(req.params.id));
  if (!user) return res.status(404).json({ code: 1, message: '用户不存在' });
  
  user.name = req.body.name || user.name;
  user.email = req.body.email || user.email;
  res.json({ code: 0, data: user });
});

// 删除用户
app.delete('/api/users/:id', (req, res) => {
  users = users.filter(u => u.id !== parseInt(req.params.id));
  res.json({ code: 0, message: '删除成功' });
});

app.listen(3000);

八、实战项目推荐

光学理论不够,必须动手做项目才能真正掌握。

项目一:Todo待办清单应用

做个小型的待办应用,包含增删改查功能,练手很合适。可以用本地文件存储或MongoDB数据库,前端用HTML+JavaScript或者Vue/React都行。

项目二:博客系统后端

做一个完整的博客后端服务,包括:

  • 用户注册登录(JWT认证)
  • 文章CRUD
  • 评论功能
  • 分类标签管理

这个项目能覆盖后端开发的方方面面。

项目三:实时聊天应用

用Node.js + Socket.io做一个聊天室,可以实现:

  • 多用户实时通信
  • 用户进入/离开提示
  • 私聊功能

Socket.io是Node.js处理实时通信的神器。

九、学习资源推荐

官方文档

Node.js官网(nodejs.org/zh-cn)和Express官方文档是最好的学习资料,内容权威还免费,有中文版。

在线课程

慕课网:有Node.js实战课程,讲得比较系统。

Bilibili:搜Node.js有一大堆免费教程,适合入门。

尚硅谷:Node.js全套教程,质量不错。

社区和工具

Node.js中文网www.nodejs.cn,提供中文文档和技术文章。

Stack Overflow:遇到问题去这里搜,十有八九有答案。

GitHub:多看优秀的Node.js开源项目,学习人家的代码风格。

十、学习路线总结

给想学Node.js后端的朋友梳理一下学习顺序:

第一阶段:HTML/CSS/JS基础(如果还没学过前端先把这个补上)

第二阶段:Node.js基础语法、内置模块

第三阶段:NPM包管理、Express框架

第四阶段:数据库操作(MongoDB或MySQL)

第五阶段:RESTful API设计、用户认证

第六阶段:项目实战,做完整的应用

第七阶段:性能优化、安全防护、部署上线

按照这个路线走,半年左右应该能入门,找到一份初级后端开发的工作问题不大。关键是多动手,代码敲起来!

Node.js入门其实不算难,关键是找对方法、坚持练习。希望这篇教程能帮到你,祝学习顺利!

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注