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

开发者晨报
2025-06-17 22:17
阅读 677

开篇:Node.js是什么,用来做什么?

开篇:Node.js是什么,用来做什么?

你可能已经听说过 JavaScript,它是网页上最常用的语言之一,用于实现网页的动态交互功能。而 Node.js 让 JavaScript 不再局限于浏览器——它让你可以用同样的语言写网站的后端部分,也就是运行在服务器上的代码。

通俗一点说,Node.js 是一个工具包(或者说是一个环境),它允许你在电脑或服务器上直接运行 JavaScript 代码,从而开发出可以接受用户访问、处理请求、保存数据等功能的网站后端程序。

举个简单的例子,比如你要做一个能接收用户留言并保存到数据库的网站,Node.js 就可以帮助你完成这些“后台工作”。

使用 Node.js 的好处是:

  • 你只需要掌握一门语言(JavaScript)就能同时写前端和后端;
  • 它适合做实时应用(如聊天室、在线游戏等);
  • 社区活跃,有很多现成的模块帮助你快速开发。

现在,我们就开始一步步学习 Node.js 吧!


环境准备:安装 Node.js 和 NPM

环境准备:安装 Node.js 和 NPM

在开始编写代码前,我们要先安装 Node.js 和它的小伙伴 NPM。

第一步:下载安装 Node.js

你可以访问 https://nodejs.org 下载安装包。

这里有两个版本:

  • LTS 版本(长期支持):推荐初学者使用这个版本,更加稳定。
  • Current 版本(最新特性):适用于想尝试新功能的朋友。

点击下载后,按照提示一步步安装即可。

第二步:验证是否安装成功

安装完成后,在你的电脑上打开命令行工具(Windows 用户用 cmdPowerShell,Mac 和 Linux 用户用终端 Terminal),然后输入以下命令:

node -v

如果看到类似 v18.17.0 这样的输出,说明 Node.js 安装成功了。

接着输入:

npm -v

如果也看到版本号,那恭喜你!NPM 也安装好了。

📌 小贴士:
NPM(Node Package Manager)就像是 JavaScript 的软件商店,我们可以用它来下载别人写好的代码模块(例如:快速创建 Web 服务器的模块 Express),大大节省开发时间。


核心概念讲解

这一节我们将带你了解几个非常重要的基础概念:Node.js 的作用、事件循环、模块系统以及如何启动服务器。每个概念都会配合简单代码示例,让你更容易理解。

什么是 Node.js 的作用?

Node.js 其实就是让 JavaScript 能在服务器上跑起来的一个运行环境。它不是一种新的语言,而是对 JavaScript 功能的一个扩展。

示例:打印一句问候语

新建一个文件叫 hello.js,内容如下:

console.log("Hello, 这是我的第一个 Node.js 程序!");

在命令行中切换到该文件所在的目录,然后执行:

node hello.js

你应该会看到输出:

Hello, 这是我的第一个 Node.js 程序!

是不是很简单?没错,这就是 Node.js 的最基本用途:执行 JavaScript 文件。


什么是事件循环(Event Loop)

Node.js 的一大特点是它采用异步非阻塞的方式处理任务。这听起来可能有点抽象,没关系,我们通过生活中的例子来理解一下。

想象你在餐厅点餐,如果服务员要等厨房把饭做好之后才去接待下一位顾客,这就叫 阻塞式;而在 Node.js 中,服务员不会等到饭做好,他会去服务下一个顾客,等饭好了再通知你。这种方式就叫做 非阻塞式 + 异步回调

示例:用 setTimeout 模拟异步操作

新建文件 event-loop.js,代码如下:

console.log("第一步:开始点餐");

setTimeout(function() {
    console.log("第三步:饭菜已好");
}, 2000);

console.log("第二步:继续接待其他客人");

运行代码:

node event-loop.js

你会发现输出顺序是:

第一步:开始点餐  
第二步:继续接待其他客人  
第三步:饭菜已好  

虽然我们在中间设置了两秒延迟,但程序并没有卡住,而是继续执行后面的任务。这就是 Node.js 的事件循环机制。


Node.js 的模块系统

Node.js 使用模块化的方式组织代码。你可以将代码拆分成多个小文件,分别负责不同功能。就像搭积木一样,组合起来就是完整的项目。

Node.js 提供了内置模块(例如:fs 文件系统模块、http 网络模块等),也可以使用社区提供的模块(例如:express 构建 Web 服务器框架)。

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

新建文件 read-file.js,代码如下:

// 引入内置模块 fs
const fs = require('fs');

// 读取文件内容
fs.readFile('hello.txt', 'utf8', function(err, data) {
    if (err) {
        console.error("读取失败:", err);
    } else {
        console.log("文件内容是:", data);
    }
});

在同一目录下新建一个文本文件 hello.txt,里面写几句话,比如:

这是我要读取的内容。

然后运行代码:

node read-file.js

你会看到控制台输出你写的文字。如果你故意改错文件名,它也会提示错误。这就是模块的实用之处。


如何用 Node.js 启动一个服务器?

Node.js 最常见的用途之一就是搭建 Web 服务器。别担心,不需要很复杂就能做到。

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

新建文件 server.js,代码如下:

// 引入 http 模块
const http = require('http');

// 创建服务器
const server = http.createServer(function(req, res) {
    // 设置响应头
    res.writeHead(200, {'Content-Type': 'text/plain'});
    // 返回响应内容
    res.end('欢迎来到我的网站!\n');
});

// 监听端口 3000
server.listen(3000, function() {
    console.log('服务器正在运行,访问地址:http://localhost:3000');
});

在命令行中运行:

node server.js

然后打开浏览器访问 http://localhost:3000,你会看到页面显示:

欢迎来到我的网站!

太棒了,你刚刚完成了一个小型 Web 服务器的搭建!


实战项目:构建一个简易留言墙

前端性能优化图表-1

理论知识掌握得差不多了,现在来实战练习一下吧。我们一起来完成一个“留言墙”的小程序,它可以接收用户的留言,并在页面上展示出来。

步骤一:项目结构规划

我们将使用 http 模块来搭建服务器,用字符串拼接方式生成 HTML 页面。虽然没有使用专业模板引擎,但更适合新手理解。

项目目录结构如下:

message-board/
├── messages.json       --> 存储留言的 JSON 文件
└── server.js           --> 主程序文件

步骤二:初始化数据文件

先创建一个空的 messages.json 文件,内容为:

[]

这个文件的作用是存储所有留言信息。

步骤三:编写服务器代码

修改 server.js,完整代码如下:

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

let messages = [];

// 读取已有留言
try {
    const data = fs.readFileSync('messages.json', 'utf8');
    messages = JSON.parse(data);
} catch (err) {
    console.error('读取留言失败:', err);
}

// 创建服务器
const server = http.createServer((req, res) => {
    if (req.method === 'GET') {
        // 显示留言页面
        let html = `
            <h1>我的留言墙</h1>
            <form method="post" action="/">
                <textarea name="message" rows="4" cols="50"></textarea><br/>
                <input type="submit" value="提交留言">
            </form>
            <hr/>
            <ul>
        `;


![移动端适配方案-2](https://code-guide.oss.shanghai.autogptai.club/common/file/download?name=date2025061722/a6aeedb3-f835-40a4-8280-e38cee3f05ee.jpg)


        messages.forEach(msg => {
            html += `<li>${msg}</li>`;
        });

        html += '</ul>';

        res.writeHead(200, {'Content-Type': 'text/html'});
        res.end(html);

    } else if (req.method === 'POST') {
        // 接收留言并保存
        let body = '';
        req.on('data', chunk => {
            body += chunk.toString();
        });
        req.on('end', () => {
            // 模拟解析表单数据
            const message = decodeURIComponent(body.split('=')[1]);
            messages.push(message);

            // 保存到文件
            fs.writeFileSync('messages.json', JSON.stringify(messages));

            // 重定向回主页
            res.writeHead(302, {'Location': '/'});
            res.end();
        });
    }
});

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

这段代码的功能包括:

  • 创建 HTTP 服务器;
  • GET 请求时显示留言页面;
  • POST 请求时接收留言,保存到内存并写入文件;
  • 用简单的 HTML 拼接方式展示留言。

✅ 小提醒: 由于我们没使用专业的框架,所以用字符串拼接 HTML 和手动解析 POST 数据,实际开发中建议使用 Express 等框架简化流程。

步骤四:测试留言功能

  1. 在终端运行服务器:
node server.js
  1. 打开浏览器访问 http://localhost:3000
  2. 输入一段留言并提交;
  3. 刷新页面,留言应该还在;
  4. 关闭服务器再重启,仍然能看到之前的留言。

🎉 完成啦!你现在拥有了一个可以存留言的小网站!


新手常见问题解答

下面是几个刚接触 Node.js 的同学常遇到的问题和解决方法:

Q1:为什么我的程序报错了?

常见原因包括:

  • 文件名或路径写错(例如 fs.readFile('hello.txt'),找不到 hello.txt);
  • 忘记加括号或分号,导致语法错误;
  • Node.js 版本过旧或未安装某些依赖模块;

🔍 解决办法:检查错误提示中的具体位置,看是哪一行代码出错;如果是模块缺失,请用 NPM 安装;


Q2:怎么退出服务器?

当你运行 node server.js 启动服务器后,可以在终端按 Ctrl+C 来停止它。


Q3:我写的代码没反应怎么办?

可能是:

  • 没有正确监听端口;
  • 控制台没有输出提示;
  • 浏览器缓存导致页面没更新。

🛠 解决方法:检查是否有 server.listen();尝试清空浏览器缓存;换浏览器测试。


Q4:Node.js 跟浏览器上的 JS 有什么不一样?

最大的区别是:

  • Node.js 运行在服务器上,不依赖浏览器;
  • 没有 DOM 操作(不能用 document.getElementById());
  • 可以访问操作系统资源(如硬盘、网络等)。

学习建议:下一步学什么?

学完这个入门教程后,你可以继续深入以下几个方向:

1. 学习 Express 框架(Web 开发神器)

Express 是最受欢迎的 Node.js Web 框架,能帮你轻松构建路由、处理表单、连接数据库等。官网:https://expressjs.com/

2. 学习 MongoDB / MySQL 数据库连接

学会用 Node.js 操作数据库,可以让你的网站真正具备“记忆能力”。

3. 研究 REST API 开发

REST API 是前后端交互的标准接口,非常适合移动应用、单页应用开发。

4. 试试 WebSocket 做实时通信

如果你喜欢聊天、游戏类项目,Node.js 结合 WebSocket 是最佳选择。


结语:开始你的编程之旅吧!

恭喜你完成了这篇《Node.js新手教程》的学习!你已经掌握了基本的环境搭建、核心概念、模块使用,并动手完成了第一个 Web 项目。接下来,只需持续练习,不断挑战更复杂的项目,你很快就能写出属于自己的完整网站。

记住一句话:“写代码,不要光看,要多动手!”祝你早日成为出色的 Node.js 开发者 🚀!

评论 0

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