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

函数起名大师
2025-06-23 12:34
阅读 366

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

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

你是不是一直以为JavaScript只能用在浏览器里?比如网页上的按钮点击、弹窗特效等?其实,JavaScript不仅可以运行在浏览器中,也可以运行在服务器端。这就要感谢一个叫 Node.js 的工具。

什么是Node.js?

Node.js 并不是一个编程语言,而是一个让你可以在电脑上(或服务器上)运行 JavaScript 的运行环境。

简单理解就是:

  • 以前JS只能在浏览器运行
  • 现在有了Node.js,JS也能在你本地电脑的终端里运行了!

它有什么用?

Node.js 可以用来做很多事:

  • 构建后端服务(也就是我们常说的“网站后台”)
  • 搭建本地开发服务器
  • 编写命令行工具
  • 自动化任务处理(比如打包代码、压缩图片)

换句话说:如果你会写 JS,现在你可以用熟悉的语言来写“后端”,不用再去学 PHP 或 Java!


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

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

要使用 Node.js,第一步当然是把它装到你的电脑上!

Step 1: 下载并安装 Node.js

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

你会看到两个版本:

  • LTS(长期支持版)推荐初学者使用
  • Current(最新版)适合高级用户

下载后按提示一步步安装即可。

Step 2: 验证是否安装成功

打开终端(Windows 上是 CMD 或 PowerShell,Mac 是终端,Linux 是终端),输入以下命令:

node -v

如果返回类似 v18.16.0 这样的版本号,说明 Node.js 安装成功 ✅

然后执行:

npm -v

如果也显示版本号,说明 NPM 也安装好了 ❗

NPM 全称是 Node Package Manager,可以理解为“JS插件市场”


核心概念讲解(通俗易懂版)

核心概念讲解(通俗易懂版)

1. Node.js 是什么结构?

想象一下你要盖一座房子,Node.js 提供的是砖块、水泥、钢筋这些基本材料。你可以用它们来搭建你想要的服务。

最简单的 Node.js 应用,就是一个 .js 文件,在终端运行就能工作。比如:

示例:最简单的Node程序

新建一个文件,例如叫 hello.js,里面写:

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

然后在终端进入这个文件所在目录,输入:

node hello.js

你就运行了自己的第一个 Node.js 程序啦!


2. Node.js 能做什么?

我们可以用它做:

  • 执行计算任务(比如加减乘除)
  • 处理文件(读写文件)
  • 创建网页服务器(响应浏览器请求)

接下来,我们先体验一下“创建网页服务器”。

示例:创建一个HTTP服务器

新建文件 server.js,内容如下:

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

// 创建服务器
const server = http.createServer((req, res) => {
    // 设置 HTTP 响应头
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    
    // 发送响应数据
    res.end('欢迎访问我的第一个Node.js服务器!\n');
});

// 监听 3000 端口
server.listen(3000, () => {
    console.log('服务器已启动,访问 http://localhost:3000');
});

保存后,在终端运行:

node server.js

打开浏览器,输入地址:

http://localhost:3000

你会看到页面显示:

欢迎访问我的第一个Node.js服务器!

是不是很酷?这就是一个最简单的 Node.js Web 服务器!


3. 什么是模块(Module)和 require()

我们在上面的例子中用了 require('http'),这是 Node.js 的一种加载“模块”的方式。

可以把模块理解成一个个预先封装好的功能包,我们只需要引入,就能直接使用它们的功能。

常见内置模块举例:

模块名 功能
fs 文件系统操作(读写文件)
path 路径处理
os 获取操作系统信息
url 处理URL解析

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

新建一个文本文件 message.txt,里面写点内容,比如:

我是测试文本。

再创建一个 readfile.js

const fs = require('fs');

// 同步读取文件
const data = fs.readFileSync('message.txt', 'utf8');
console.log(data);

终端运行:

node readfile.js

输出就会是你写的内容 🎉


4. 什么是NPM和package.json?

就像刚才说的,NPM 就像是 JavaScript 的插件商店。

  • 我们可以用 npm install 包名 来安装别人写的模块
  • 使用前要先创建 package.json 文件

初始化 package.json

在一个项目文件夹下运行:

npm init -y

这样就会自动生成 package.json 文件。

示例:安装并使用第三方包(如lodash)

lodash 是一个常用的实用函数库。

安装:

npm install lodash

创建 lodash-demo.js

const _ = require('lodash');

const arr = [1, 2, 3, 4, 5];
const chunked = _.chunk(arr, 2); // 分块成[[1,2],[3,4],[5]]

console.log(chunked);

运行结果将是分组数组。

这就意味着:我们可以很方便地借助社区的力量扩展自己的功能!


实战项目:构建一个静态文件服务器

实战项目:构建一个静态文件服务器

目标:做一个小型服务器,能把一个网页目录下的 HTML/CSS/JS 文件展示出来。

第一步:准备HTML文件

新建文件夹 my-static-server,在里面新建子文件夹 public 和文件:

public/index.html 内容如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title>首页</title>
</head>
<body>
  <h1>你好,这是我的静态页面</h1>
</body>
</html>

第二步:创建服务器逻辑文件

创建 server.js

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

const PORT = 3000;

// 根据扩展名设置正确的 Content-Type
function getContentType(ext) {
    switch (ext) {
        case '.html': return 'text/html';
        case '.css': return 'text/css';
        case '.js': return 'application/javascript';
        default: return 'application/octet-stream';
    }
}

// 创建服务器
const server = http.createServer((req, res) => {
    let filePath = req.url === '/' ? 'index.html' : req.url;
    const extname = path.extname(filePath);
    const contentType = getContentType(extname);

    filePath = path.join(__dirname, 'public', filePath);

    fs.readFile(filePath, (err, content) => {
        if (err) {
            if (err.code === 'ENOENT') {
                // 文件不存在
                res.writeHead(404, {'Content-Type': 'text/plain'});
                res.end('找不到该页面\n');
            } else {
                // 服务器错误
                res.writeHead(500);
                res.end(`服务器错误: ${err.code}`);
            }
        } else {
            // 成功找到文件
            res.writeHead(200, {'Content-Type': contentType});
            res.end(content, 'utf-8');
        }
    });
});

// 启动服务器
server.listen(PORT, () => {
    console.log(`静态服务器正在监听 http://localhost:${PORT}`);
});

第三步:启动服务器并访问网页

在终端运行:

node server.js

浏览器打开:

http://localhost:3000

你会看到自己写的 HTML 页面!

🎉恭喜你完成了一个完整的静态服务器项目!


新手常见问题解答

Q1:为什么控制台报错“Error: Cannot find module 'xxxxx'”?

答: 因为你没有安装需要的第三方模块。解决方法:

  • 在终端输入:npm install xxxxx
  • 如果不确定模块是否存在,可去 NPM 官网搜索:https://www.npmjs.com/

Q2:Node.js 和浏览器中的JS有什么区别?

答: 主要区别在于运行环境不同:

  • 浏览器中的JS主要与 DOM(网页结构)交互
  • Node.js 中没有 DOM,但可以访问文件系统、网络接口、进程管理等功能

Q3:我写的代码没问题,但服务器没反应怎么办?

答:

  • 查看终端是否有报错信息
  • 确保端口没有被占用(比如换个端口号试试)
  • 浏览器访问时注意 IP 地址是否正确(建议使用 localhost

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

恭喜你现在掌握了 Node.js 的基础使用!接下来可以继续深入以下方向:

1. 进阶学习内容推荐:

  • ✅ Express.js 框架 —— 让你更方便地写Web应用
  • ✅ MongoDB数据库连接 —— Node+MongoDB是最常见的组合之一
  • ✅ RESTful API 设计 —— 为移动端提供接口服务
  • ✅ 用 Socket.io 实现实时通信
  • ✅ 部署Node.js服务(使用Nginx / PM2 / Docker)

2. 学习资源推荐:


总结回顾

今天我们从零开始认识了 Node.js:

  • 学会了它的基本作用:让 JS 能运行在服务器上
  • 安装了开发环境,并验证了基本功能
  • 掌握了一些核心概念:模块、NPM、HTTP服务器
  • 亲手实践了一个小项目——静态服务器
  • 解决了一些常见的疑难问题

记住一句话:“实践出真知”。别怕敲代码,多动手才能真正掌握 Node.js!

如果你喜欢这篇教程,不妨收藏它,作为你学习路上的第一份笔记。祝你早日成为一名优秀的开发者!🚀

评论 0

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