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

Mock数据工厂
2025-06-24 11:34
阅读 631

🧩 一、开篇:什么是Node.js,能做什么?

🧩 一、开篇:什么是Node.js,能做什么?

如果你是个前端开发者(甚至不是),你可能经常听到“Node.js”这个词。但它是啥?有什么用?

简单来说:

Node.js 是一个基于 JavaScript 的运行环境,让你可以用 JavaScript 编写服务器端程序。

什么意思呢?我们平常写的 HTML/CSS/JS 主要是在浏览器里运行的(前端)。而 Node.js 让你能用熟悉的 JS,在服务器上干活啦!

💡 常见用途包括:

  • 构建网站后端
  • 创建 API 接口
  • 实时聊天系统
  • 数据处理和自动化脚本
  • 本地命令行工具开发

比如,像知乎、网易云音乐、B站等很多大厂项目,都有用到 Node.js 来做他们的后台服务。


🔨 二、环境准备:手把手教你安装开发环境

🔨 二、环境准备:手把手教你安装开发环境

要使用 Node.js,首先得在你的电脑上安装它。

Step 1:下载并安装 Node.js

前往官网:https://nodejs.org

你会看到两个版本:

  • LTS 版本(推荐)—— 稳定、适合新手
  • Current 版本—— 最新功能,但可能存在不稳定性

点击 LTS 版本的 “Download” 按钮,根据你的操作系统(Windows/macOS/Linux)下载安装包,然后双击安装即可。

Step 2:验证安装是否成功

打开终端(Windows 可以用命令提示符或 PowerShell,macOS 和 Linux 用 Terminal):

node -v
npm -v

如果输出类似这样(具体数字可能不同):

v20.15.1
9.8.0

恭喜你,Node.js 和 npm 都安装好了!

node 是运行环境本身
npm 是包管理器(后面会讲)

Step 3:安装一个代码编辑器(推荐 VS Code)

前往 https://code.visualstudio.com 下载并安装 Visual Studio Code。

安装完成后,打开它,我们就可以开始写第一个 Node.js 程序了!


📚 三、核心概念讲解(超通俗版!)

作为初学者,这几个概念是必须要知道的:

概念名 中文名 简单解释
Node.js 节点.js 运行 JS 的服务器环境
npm 包管理器 安装别人写好的 JS 功能模块
模块 Module JS 文件之间互相引用的方式
文件系统(fs) File System Node 提供的文件读写能力
HTTP 模块 协议模块 用于创建 Web 服务器的基础模块

下面我们用代码示例带你认识这些概念。

前端性能优化图表-2


3.1 第一个 Node.js 程序:Hello World!

创建一个文件夹,比如叫 my_node_project,进入文件夹中新建一个文件:app.js

输入以下代码:

// app.js
console.log("Hello, Node.js!");

保存之后,在终端里运行:

node app.js

你会看到输出:

Hello, Node.js!

✅ 成功运行了你的第一个 Node.js 程序!


3.2 Node.js 模块系统:组织你的代码结构

你可以把代码分成多个小文件来管理,这叫做“模块”。

举个例子,我们写一个加法函数:

创建 math.js

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

module.exports = add; // 导出这个函数

app.js 使用它:

// app.js
const add = require('./math'); // 引入模块
console.log('加法结果:', add(3, 5)); // 输出 8

运行一下看看:

node app.js

输出:

加法结果: 8

✅ 学会了模块引入!


3.3 使用内置模块:文件操作 fs

Node.js 内置了很多实用模块,比如可以读写文件的 fs 模块。

示例:写入一个文本文件

// write.js
const fs = require('fs');

fs.writeFile('hello.txt', '你好,这是写进去的内容', (err) => {
  if (err) throw err;
  console.log('文件写入成功');
});

运行:

node write.js

查看目录下是不是多了一个 hello.txt 文件?

✅ 学会了文件写入!


3.4 创建自己的第一个 Web 服务器!

Node.js 最牛的地方就是可以创建 Web 后端服务器。我们用它的内置模块 http 来试试看。

示例代码如下:

// server.js
const http = require('http');

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('你好,这是我的第一个 Node.js 服务器!');
});

const PORT = 3000;

server.listen(PORT, () => {
  console.log(`服务器正在监听端口 ${PORT}`);
});

运行这个服务器:

node server.js

现在去浏览器地址栏输入:

http://localhost:3000

你会看到页面显示:

你好,这是我的第一个 Node.js 服务器!

🎉 太棒了!你现在有一个自己的 Web 服务器了!


🛠️ 四、实战项目:搭建一个简易留言本

让我们动手做一个完整的项目吧!

目标:搭建一个简单的留言本,用户访问网页可以看到所有留言,并可以提交新的留言。

项目结构:

guestbook/
├── data.json      # 存储留言数据
├── server.js      # 服务器主程序

Step 1:初始化 data.json

新建一个空数组:

// data.json
[]

Step 2:修改 server.js

const http = require('http');
const fs = require('fs');
const path = require('path');

http.createServer((req, res) => {

  if (req.url === '/messages' && req.method === 'GET') {
    // 获取留言列表
    fs.readFile(path.join(__dirname, 'data.json'), 'utf8', (err, data) => {
      if (err) throw err;
      res.end(data);
    });

  } else if (req.url === '/add' && req.method === 'POST') {
    let body = '';
    req.on('data', chunk => {
      body += chunk.toString();
    });
    req.on('end', () => {
      const newMsg = JSON.parse(body);

      fs.readFile(path.join(__dirname, 'data.json'), 'utf8', (err, data) => {
        if (err) throw err;
        const messages = JSON.parse(data);
        messages.push(newMsg);

        fs.writeFile(path.join(__dirname, 'data.json'), JSON.stringify(messages), err => {
          if (err) throw err;
          res.end('OK');
        });
      });
    });

  } else {
    // 默认返回 HTML 页面
    res.end(`
      <html>
        <body>
          <h2>留言本</h2>
          <textarea id="msg" placeholder="请输入留言内容..."></textarea><br/>
          <button onclick="send()">提交</button>

          <ul id="list"></ul>

          <script>
            function send() {
              fetch('/add', {
                method: 'POST',
                headers: { 'Content-Type': 'application/json' },
                body: JSON.stringify({ text: document.getElementById('msg').value })
              }).then(() => location.reload());
            }

            fetch('/messages')
              .then(res => res.json())
              .then(data => {
                let html = '';
                data.forEach(msg => {
                  html += '<li>' + msg.text + '</li>';
                });
                document.getElementById('list').innerHTML = html;
              });
          </script>
        </body>
      </html>
    `);
  }

}).listen(3000, () => {
  console.log('留言本服务已启动,访问 http://localhost:3000');
});

Step 3:运行项目

node server.js

访问网址:

http://localhost:3000

你现在可以:

  • 查看留言列表
  • 添加新留言,自动刷新页面并显示新增内容

✅ 恭喜完成!这是你第一个完整的小型网站!


❓五、常见问题解答(FAQ)

Q1:为什么不能直接用 <script src="xxx.js"> 写 Node.js?

A:Node.js 不运行在浏览器里,所以浏览器不认识你写的 Node.js 文件。你需要通过 node xxx.js 才能运行。

Q2:报错 Error: Cannot find module 'xxxxx' 怎么办?

A:说明你用了某个模块,但还没有安装。先运行 npm install xxxxx 再运行程序。

Q3:怎么调试 Node.js 程序?

A:可以用 VSCode 直接调试,也可以加 console.log() 或者用 debugger 断点。

Q4:如何退出 Node.js 服务?

A:在终端按下 Ctrl + C,两次可强制退出。


📚 六、下一步该学什么?推荐学习路径

前端开发工具界面-1

恭喜你完成了 Node.js 的入门教程!接下来可以继续提升:

初级阶段:

  • ✅ 继续掌握更多模块:如 path, url, events
  • ✅ 学习 Express.js(Node 最流行的框架)
  • ✅ 学习 MongoDB / MySQL 等数据库连接

中级阶段:

  • ✅ RESTful API 设计与构建
  • ✅ 使用 JWT 实现登录认证
  • ✅ 学习异步编程:Promise、async/await

高级阶段:

  • ✅ 微服务架构设计
  • ✅ 使用 Docker 部署 Node 应用
  • ✅ 使用 PM2 管理 Node.js 进程

📝 小结

在这篇教程中,我们:

  • 介绍了 Node.js 是什么,能做什么;
  • 教你一步步搭建了开发环境;
  • 学习了模块、文件操作、HTTP 服务器;
  • 动手完成了一个留言本小项目;
  • 解答了初学者常遇的问题;
  • 规划了后续的学习方向。

希望这篇文章能成为你踏入 Node.js 世界的第一步!继续加油,未来你也能做出大型后端应用!


📬 如果你遇到疑问或者想交流心得,欢迎留言提问~

评论 0

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