Node.js新手教程:从零开始学习服务器端JavaScript

刘志明
2025-06-28 11:43
阅读 257

开篇:Node.js 是什么?它能做什么?

开篇:Node.js 是什么?它能做什么?

如果你已经会写前端网页,但想进一步掌握如何让网站“活起来”,比如处理用户注册、登录、上传文件等功能,那你一定会遇到一个非常重要的技术——Node.js

Node.js 简单来说就是:在电脑上运行 JavaScript 的工具。

它不是一种新的语言,而是一个环境,让你可以用我们熟悉的 JavaScript 语法来写服务端(也就是服务器上的)代码。有了 Node.js,你就可以用 JavaScript 写出完整的网站后端,和数据库打交道、处理 HTTP 请求、构建 API 接口等。

换句话说:

  • 原本 JS 只能在浏览器里运行;
  • 现在 Node.js 让你可以在电脑上、服务器上运行 JS;
  • 所以前端和后端都能用 JS 来写啦!

Node.js 被广泛用于开发 Web 应用的后端,也常用于构建命令行工具、实时聊天程序、微服务架构、自动化脚本等等。


环境准备:搭建你的第一个 Node.js 开发环境

环境准备:搭建你的第一个 Node.js 开发环境

第一步:安装 Node.js 和 npm

  1. 访问官网:https://nodejs.org
  2. 点击 “Download” 下载按钮(推荐使用 LTS 版本,更稳定)
  3. 下载完成后打开安装程序,一路点击“下一步”即可完成安装

📌 小提示:npm(Node Package Manager)会自动随 Node.js 一起安装。它就像 App Store,可以用来下载别人开发好的模块或库。

如何确认是否安装成功?

在电脑上打开终端(Mac/Linux)或者命令提示符/PowerShell(Windows),输入以下命令:

node -v
npm -v

如果输出版本号(例如 v18.15.09.5.0),说明安装成功了!


第二步:创建你的第一个项目目录

接下来,我们可以新建一个项目文件夹,练习写一些简单的代码。

  1. 在任意位置创建一个新文件夹,例如 my-node-project
  2. 打开终端(进入该目录)
cd my-node-project
  1. 初始化 npm(用于管理依赖)
npm init -y

这会自动生成一个 package.json 文件,里面记录了项目的名称、版本、依赖包等信息。


核心概念:理解 Node.js 的基本知识

核心概念:理解 Node.js 的基本知识

学编程就像搭积木,我们先认识几个基础“积木块”。

1. 模块化编程

在 Node.js 中,一切都是模块。你可以把代码拆分成多个文件,然后通过 require() 引用。

举个例子:

示例一:创建两个文件:math.jsmain.js

// math.js
function add(a, b) {
  return a + b;
}

module.exports = { add };
// main.js
const math = require('./math');
console.log(math.add(2, 3)); // 输出:5

📌 运行方式:

node main.js

这样我们就把功能分开放到不同的文件中,方便管理和复用代码。


2. 使用内置模块

Node.js 提供了很多实用的内置模块,比如:

  • fs(File System):读写文件
  • path:处理文件路径
  • http:创建服务器
  • os:获取系统信息

示例二:使用 fs 模块读取文件内容

// read-file.js
const fs = require('fs');

fs.readFile('hello.txt', 'utf8', (err, data) => {
  if (err) {
    console.error("读取失败", err);
  } else {
    console.log(data); // 输出 hello.txt 中的内容
  }
});

📌 先创建一个名为 hello.txt 的文件,内容为 "Hello from file!"
📌 然后运行:

node read-file.js

3. 异步编程简介(初识事件循环)

Node.js 最大的特点之一是它的“非阻塞 I/O”特性,简单点说,就是可以一边做一件事,同时还能去做其他事情

例如:

console.log("1. 启动任务");

setTimeout(() => {
  console.log("3. 完成延迟任务");
}, 1000);

console.log("2. 主线程继续执行");

这段代码的输出顺序是:

1. 启动任务
2. 主线程继续执行
3. 完成延迟任务

这是因为在 JavaScript(包括 Node.js)中有一个叫事件循环的东西负责调度任务,使得异步操作不会卡住主线程。


4. Express.js:最流行的 Node.js Web 框架

如果你打算用 Node.js 构建一个网站或接口服务,那么一定要了解 Express.js。

示例三:用 Express 创建一个简单的 Web 服务器

首先安装 Express:

npm install express

然后编写代码:

// app.js
const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('欢迎来到我的网站!');
});

app.listen(3000, () => {
  console.log('服务器正在监听 http://localhost:3000');
});

启动服务:

node app.js

现在打开浏览器访问:http://localhost:3000,你应该能看到页面输出“欢迎来到我的网站!”


实战项目:做一个天气查询接口

实战项目:做一个天气查询接口

我们现在来动手做一个简单项目:天气查询接口 API

目标:当用户访问 /weather?city=北京 时,返回假的天气数据。

我们先不调用真实天气 API,只做模拟响应。

步骤一:创建文件结构

创建文件:

  • index.js:主程序
  • routes/weather.js:天气相关的路由

步骤二:编写代码

index.js

// index.js
const express = require('express');
const app = express();
const weatherRouter = require('./routes/weather');

app.use('/api', weatherRouter);

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

routes/weather.js

// routes/weather.js
const express = require('express');
const router = express.Router();

router.get('/weather', (req, res) => {
  const city = req.query.city || '未知城市';
  const fakeTemp = Math.floor(Math.random() * 40); // 随机温度
  res.json({
    city,
    temperature: fakeTemp + " ℃"
  });
});

module.exports = router;

步骤三:运行查看结果

运行服务器:

node index.js

打开浏览器访问:

http://localhost:3000/api/weather?city=上海

你会看到类似这样的 JSON 数据:

{
  "city": "上海",
  "temperature": "27 ℃"
}

✅ 成功!你已经用 Node.js 做出了自己的第一个 API 接口!


常见问题解答(FAQ)

以下是新手常见的疑问,希望帮你避免踩坑:


❓ Q1:Node.js 与浏览器中的 JavaScript 有什么区别?

  • 共同点:语法一致,都支持变量、函数、对象、数组等;
  • 不同点
    • Node.js 没有 DOM 和 BOM(无法直接操作网页元素);
    • Node.js 多了很多内置模块(如文件系统、网络请求等);
    • Node.js 更适合运行在服务器端。

❓ Q2:什么是“回调函数”?我为什么要关心它?

“回调函数”指的是被传入另一个函数中,并在某个时候被“调用”的函数。

例如:

fs.readFile('file.txt', 'utf8', function(err, data) {
  // 这个函数就是回调函数
  console.log(data);
});

早期 Node.js 大量使用回调,后来引入了 Promiseasync/await,大大简化了代码逻辑。


❓ Q3:npm 和 package.json 是什么?

  • npm 是 Node.js 自带的一个软件包管理器,类似 App Store。
  • package.json 是一个描述项目的配置文件,保存着项目名称、版本、依赖包等信息。
  • 执行 npm install xxx 时,npm 会自动下载并更新该文件。

❓ Q4:Node.js 的版本怎么选择?LTS 是啥意思?

  • LTS(Long Term Support)意为长期支持版,更适合生产环境;
  • Current(最新版)适合尝鲜和测试新特性;
  • 新手建议使用 LTS 版本,更稳定、兼容性更好。

学习建议:下一步我可以学什么?

恭喜你完成了入门!接下来你可以沿着这些方向继续深入:

✅ 继续学习路线图

学习阶段 推荐内容
进阶 Node.js 文件流、进程控制、多线程(worker_threads)、错误处理机制
常用模块 path、url、querystring、child_process 等内置模块
Web 开发进阶 Express 路由、中间件、模板引擎(如 EJS、Pug)
使用数据库 MongoDB / MySQL / PostgreSQL + Mongoose / Sequelize
RESTful API 设计 接口规范设计、状态码返回、请求校验等
测试 单元测试、集成测试、Mocha / Jest
工程化 npm 包发布、ESLint、项目打包部署(PM2)

结语:坚持练习,你会越学越轻松!

Node.js 是现代 Web 开发的重要工具之一,掌握它能让你从前端开发走向全栈开发,成为真正的“全能开发者”。

刚开始可能觉得有点难,但记住一句话:

“每个高手都是从 Hello World 开始的。”

只要你每天坚持写点代码,不怕犯错,很快你就能写出属于自己的网站和服务!

💡 动手是最好的老师 —— 不要光看,动手改代码、加功能、调试 Bug,才能真正学会 Node.js。

祝你在编程的路上越走越远!🚀

评论 0

最热最新
暂无评论
匿名用户Lv.1
0
影响力
0
文章
0
粉丝