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

开发者后花园
2025-06-16 03:22
阅读 390

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

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

你有没有想过,为什么我们在浏览器里写的JavaScript代码只能运行在网页上,而不能访问电脑的文件系统或搭建网站服务器呢?这是因为浏览器为了安全考虑,对JavaScript做了很多限制。

而今天我们要介绍的 Node.js 就是让JavaScript突破这些限制的关键技术。

通俗解释一下:

Node.js 不是一个编程语言,而是一个“工具包”,它可以让我们使用 JavaScript 来编写运行在电脑上的程序,甚至可以直接用JavaScript来构建一个网站服务器!

换句话说,有了Node.js,你就可以像写网页一样写服务器程序,再也不用学PHP、Java或者Python去干类似的事情了。

Node.js常用于做什么?

  • 构建网站服务器(就像Apache或者Nginx那样)
  • 实现后端接口(API),供前端调用
  • 操作本地电脑的文件和文件夹(比如读取Excel数据生成报表)
  • 构建自动化工具(例如自动压缩图片、打包项目资源等)

总之,它把JavaScript带进了更广阔的世界。现在我们就从零开始入门吧!


二、环境准备:安装Node.js并配置开发工具

二、环境准备:安装Node.js并配置开发工具

我们先来做最基础也是最重要的一步 —— 安装Node.js,并确认它是否安装成功。

第1步:下载安装包

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

你会看到两个版本:

  • LTS版(推荐):适合初学者使用的长期稳定支持版本
  • Current版:最新功能更多,但可能存在兼容性问题

点击【LTS】的“Download”按钮,下载对应操作系统(Windows / macOS / Linux)的安装包。

第2步:安装Node.js

双击安装包按照提示一步步完成安装即可。

安装完毕后,请打开你的终端或命令行工具(Windows可以用CMD或PowerShell,macOS/Linux可用Terminal)输入以下命令:

node -v

如果输出类似这样的内容:

v18.17.0

说明 Node.js 已经成功安装了!

再输入这个命令,查看npm是否也安装好了:

npm -v

npm 是 Node.js 的一个重要组成部分,后面我们会详细讲它的用途。

第3步:准备开发工具

你可以选择任何文本编辑器写Node.js代码,但我们推荐使用 Visual Studio Code(简称 VSCode),因为它免费、功能强大,并且非常受开发者欢迎。

下载地址:https://code.visualstudio.com/

安装完成后,你可以新建一个文件夹作为我们的项目目录,然后通过VSCode打开它进行后续开发。


三、核心概念讲解:从Hello World说起

三、核心概念讲解:从Hello World说起

我们以最经典的 Hello World 例子开始,让你快速理解 Node.js 最基本的使用方式。

示例1:最简单的Node.js程序

在你创建的项目文件夹中新建一个文件,命名为 app.js,写入以下内容:

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

保存后,在终端中执行如下命令运行这段代码:

node app.js

你应该会看到控制台输出:

Hello, Node.js!

没错,这就是一个Node.js程序!我们只是写了一个打印语句,但它不是运行在浏览器里,而是直接跑在你本机上的!

常见问题 Q&A:

👉 问:为什么我执行 node app.js 时报错说找不到命令?

答:请确保你已经正确安装了 Node.js,并在终端里输入了 node -v 成功看到了版本号。如果不是,请尝试重新安装。


示例2:Node.js的模块系统与内置模块

Node.js 是如何组织代码的?

Node.js 遵循的是模块化设计思想,每一个 JS 文件都是一个独立的模块。我们可以很方便地导入其它模块的功能。

Node.js 自带了一些常用模块,例如:

  • fs:文件系统模块,用来操作文件
  • http:网络通信模块,可以创建 Web 服务器
  • path:路径处理模块

让我们看个例子,使用 fs 模块读取一个文件的内容:

新建一个文件 data.txt,里面写一句话:

我是测试文本。

然后修改 app.js 如下:

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

// 同步读取文件内容
const content = fs.readFileSync('data.txt', 'utf-8');
console.log(content);

运行命令:

node app.js

你能看到输出:

我是测试文本。

是不是很有意思?我们已经在用 JavaScript 操作本地文件了!

小知识点提醒:

require() 是 Node.js 中引入模块的传统方式,还有一种现代写法叫 import,不过目前初学者建议先使用 require() 熟悉语法。


示例3:创建第一个服务器

接下来我们用 http 模块做一个最小化的服务器。

修改 app.js 内容如下:

const http = require('http');

const server = http.createServer((req, res) => {
    // 设置响应头,告知浏览器这是一个 HTML 页面
    res.writeHead(200, { 'Content-Type': 'text/html' });
    
    // 发送响应内容
    res.end('<h1>Hello from Node.js Server!</h1>');
});

// 监听3000端口
server.listen(3000, () => {
    console.log('Server is running on http://localhost:3000');
});

保存后运行:

node app.js

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

Hello from Node.js Server!

恭喜你,完成了人生中的第一个Node.js服务器!🎉


四、实战项目:制作一个简易静态文件服务器

JavaScript框架对比-1

在这个项目中,我们将利用前面学到的知识,做一个静态文件服务器 —— 也就是说用户可以通过浏览器访问你电脑上的HTML、CSS、JS等文件。

功能需求:

  • 访问根路径 / 显示 index.html
  • 访问其他路径如 /about.html 显示对应的HTML文件
  • 如果找不到文件,返回404错误

准备文件:

  • 在项目文件夹内创建 public 子文件夹
  • 放入以下两个HTML文件:

index.html 内容:

<h1>首页</h1>
<p><a href="/about.html">关于页面</a></p>

about.html 内容:

<h1>关于我</h1>
<p>这是关于页面。</p>

编写主程序 server.js

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

const server = http.createServer((req, res) => {
    let filePath;

    if (req.url === '/') {
        filePath = path.join(__dirname, 'public', 'index.html');
    } else {
        filePath = path.join(__dirname, 'public', req.url);
    }

    fs.readFile(filePath, (err, content) => {
        if (err) {
            res.writeHead(404, { 'Content-Type': 'text/html' });
            res.end('<h1>404 Not Found</h1>');
        } else {
            res.writeHead(200, { 'Content-Type': 'text/html' });
            res.end(content);
        }
    });
});


![移动端适配方案-2](https://code-guide.oss.shanghai.autogptai.club/common/file/download?name=date2025061603/f9264d7a-aa57-4219-8477-ecefd60fc6ef.jpg)


server.listen(3000, () => {
    console.log('服务器启动成功,访问:http://localhost:3000');
});

运行服务器:

node server.js

然后在浏览器中打开:

如果你都看到了相应内容,那就太棒了!你已经掌握了一个完整的Node.js项目的开发流程!


五、常见问题解答:新手最容易遇到的问题

❓1. 我写了 console.log,但是控制台没有输出?

答:检查是否漏掉了运行 node 文件名.js,或者是否有拼写错误。

❓2. 提示“Cannot find module ‘xxx’”

答:可能是你引入了不存在的模块,也可能是该模块需要手动安装。如果是第三方库,需要用 npm install 包名 来安装。

❓3. 为什么有时候 __dirname 和相对路径结果不一样?

答:因为 Node.js 中的当前路径可能并不总是等于你预期的路径位置,使用 __dirname 更加可靠。

❓4. 能不能不安装Node.js就运行代码?

答:不可以。所有Node.js程序都需要 Node.js 运行环境支持。


六、下一步学习建议:继续深入Node.js世界

恭喜你完成了本教程的学习!你现在已经具备了:

  • 使用Node.js运行本地程序的能力
  • 操作文件系统的基本知识
  • 创建Web服务器的经验

接下来你可以继续学习以下几个方向来进一步提升:

1. 掌握npm —— Node.js的包管理工具

npm 是 Node.js 的生态核心之一。你可以通过它安装别人发布的模块,也可以发布自己的模块。

常用命令:

npm init       # 初始化项目配置文件 package.json
npm install 包名  # 安装某个模块
npm start      # 运行项目预定义的启动脚本

2. 学习Express框架 —— 快速搭建Web应用

Express 是 Node.js 最流行的一个 Web 开发框架,它简化了路由、中间件、请求处理等功能,是进阶的必学内容。

3. 学习异步编程(回调函数、Promise、async/await)

Node.js 天生擅长处理高并发任务,这得益于其非阻塞异步特性。想真正用好Node.js,必须理解异步编程的核心机制。

4. 了解RESTful API的设计与实现

学习如何创建标准化的后端API接口,为前端提供数据服务。


总结

通过这篇文章,你已经迈出了成为全栈开发者的第一步 —— 在服务器端用 JavaScript 写程序。

Node.js 是一个非常好玩、实用又容易上手的技术。只要坚持练习和动手做项目,相信你在未来一定能做出功能强大的网站和工具!

祝你学习愉快,一路向前!🚀

评论 0

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