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

协程在摸鱼
2025-06-20 09:53
阅读 545

开篇:Node.js到底是什么?

开篇:Node.js到底是什么?

在我们讲 JavaScript 的时候,你可能已经知道它主要是用来写网页的 —— 比如让按钮能点击、图片轮播动起来、弹出提示框等等。但你知道吗?JavaScript 其实不只是能在浏览器中运行,它也能写“服务器端”的程序!这就是我们要学的 Node.js

通俗理解:

你可以把服务器想象成一家餐厅的厨房。你点菜(访问网站)的时候,厨师(服务器)根据你的需求来准备食物(返回网页内容)。
Node.js 就是一个工具,让我们用 JavaScript 来当这个“厨师”。

能做什么?

  • 做网站后台系统
  • 开发 API 接口给手机 App 使用
  • 构建实时聊天应用
  • 创建命令行小工具
  • 大量基于 JavaScript 技术栈的应用开发

所以,如果你已经会了前端 JavaScript,再学 Node.js,就能前后通吃啦!


环境准备:搭建属于自己的Node.js开发环境

环境准备:搭建属于自己的Node.js开发环境

想学做饭,总得先有厨房对吧?那我们就一步一步准备好这个“厨房”——开发环境。

Step 1:安装 Node.js 和 npm

👉 官网下载地址:https://nodejs.org/

选择推荐版本(LTS 长期支持版),下载对应系统的安装包并安装。安装完成后:

检查是否安装成功:

打开终端(Windows 是命令行/cmd/PowerShell,Mac 或 Linux 是 Terminal)输入以下命令:

node -v

应该会显示一个版本号,比如 v20.12.0,这说明 Node.js 安装成功。

继续输入:

npm -v

如果输出类似 10.5.0,说明 npm(Node.js 包管理器)也装好了。npm 可以看作是 Node.js 的“软件商城”,我们可以用它安装各种有用的扩展工具。


Step 2:配置代码编辑器(建议使用VS Code)

推荐使用免费且功能强大的代码编辑器:Visual Studio Code(简称 VS Code)

安装完成后做几个设置:

  • 安装插件:“ESLint”、“Prettier” (美化代码格式)
  • 更改缩进方式为 2 个空格(更符合 JS 社区标准)

现在你就有一个可以写 Node.js 程序的“厨房”了!


Step 3:创建第一个项目文件夹

在电脑上新建一个文件夹,比如叫 my-node-app,并在里面创建一个文件 app.js,这样我们的第一个 Node.js 程序就可以开始了!


核心概念讲解:Node.js 中的关键角色都有谁?

核心概念讲解:Node.js 中的关键角色都有谁?

前端性能优化图表-2

虽然 Node.js 是用 JavaScript 写的,但它和你在网页中写的 JS 有些不一样。因为网页里的是“运行在浏览器里的 JS”,而 Node.js 是“运行在电脑上的 JS”。所以我们需要理解几个新朋友。


1. 模块(Module)

想象你家里的电饭锅、炒菜锅、炖锅…它们都是模块化设备。Node.js 也是一样,通过不同的模块来完成任务。

最常用的一个内置模块是:fs(读写文件用的)

示例:我们用 fs 来创建一个文本文件:

const fs = require('fs');

// 写入文件内容
fs.writeFileSync('hello.txt', 'Hello, this is Node.js!');
console.log('文件已创建');

保存上面代码到 app.js,然后在命令行中运行:

node app.js

你会在当前目录看到一个叫 hello.txt 的文件出现了!


2. 事件循环(Event Loop)与异步处理

Node.js 的一大特点就是“异步非阻塞”,这听起来很专业,其实意思是:

它不会等一个任务做完才做下一个任务,而是同时处理多个任务。

比如你想煮饭又想烧水,传统程序会说:“我先煮饭,煮完再烧水。”
而 Node.js 会说:“我去下米,顺便打个水,等饭煮好我就去关火。”

这就叫 异步,Node.js 的核心机制之一。

举个例子:

console.log("1. 开始执行");

setTimeout(() => {
    console.log("2. 异步任务完成");
}, 2000); // 等待两秒

console.log("3. 继续执行");

运行结果可能是:

1. 开始执行
3. 继续执行
2. 异步任务完成

这说明 Node.js 并不会停住等 setTimeout 结束才往下执行代码,而是先去做后面的事。


3. REPL(Read-Eval-Print Loop)

REPL 是 Node.js 自带的交互式编程工具,特别适合练手或测试小段代码。

打开终端,直接输入:

node

就进入交互模式了,尝试输入:

1 + 2

按回车马上就会得到结果:3

退出 REPL 模式只需要输入 .exit 或按下 Ctrl+C 两次。


4. 文件结构常见组成

一个简单的 Node.js 项目通常长这样:

my-node-app/
├── app.js          # 主程序入口
├── package.json    # 描述项目信息,依赖项清单
└── utils/
    └── helpers.js  # 放一些公共函数的工具文件夹

别担心这些概念还没完全理解,我们下面会一步步构建它们的实际用途。


实战项目:用Node.js做一个“打招呼机器人”

现在我们来做一个超简单的项目:创建一个命令行“打招呼机器人”

它的功能是:询问用户名字,并输出欢迎语句。

第一步:创建基本入口文件 app.js

在你的项目根目录下创建 app.js,输入以下内容:

console.log("你好,我是打招呼机器人!");

运行看看:

node app.js

你应该能看到一句话“你好,我是打招呼机器人!”


第二步:引入 readline 模块,让用户输入名字

Node.js 提供了一个叫做 readline 的模块,用于监听用户的键盘输入。

修改 app.js 内容如下:

const readline = require('readline');

// 创建 readline 接口实例
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.question('请问您怎么称呼?', (name) => {
    console.log(`欢迎您,${name}!`);
    
    // 关闭接口
    rl.close();
});

再次运行程序,试试输入你的名字吧!


第三步:添加更多功能,例如时间问候

我们来升级一下机器人:让它根据时间给出不同的欢迎语。

修改代码如下:

const readline = require('readline');
const currentTime = new Date().getHours(); // 获取当前小时数

let greeting = '晚上好';

if (currentTime < 12) {
    greeting = '早上好';
} else if (currentTime < 18) {
    greeting = '下午好';
}

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.question('请问您怎么称呼?', (name) => {
    console.log(`${greeting},${name}!`);
    rl.close();
});

现在,机器人不仅会记住你的名字,还会在早上说“早上好”,傍晚说“下午好”或者“晚上好”哦!


扩展小技巧:用 package.json 记录你的项目信息

还记得之前提到的 package.json 文件吗?这是一个描述你项目的“身份证”,记录了项目的名称、版本、依赖等。

生成方式很简单,在项目根目录运行:

npm init -y

这个命令会自动生成一个默认的 package.json 文件,内容大致如下:

{
  "name": "my-node-app",
  "version": "1.0.0",
  "description": "",
  "main": "app.js"
}

之后如果你要添加其他模块(比如 express 做网站服务器),可以用 npm 自动下载并在这里记录依赖。


新手常见问题解答

Q1:Node.js 和 JavaScript 是一样的吗?

答:Node.js 是 JavaScript 在服务器端的一种运行平台,两者语法一致,但运行环境不同。JS 主要在浏览器中跑,而 Node.js 是在电脑或服务器上跑。

Q2:为什么有时候 node 命令报错找不到模块?

答:你可能忘记安装某些模块。Node.js 内置了一些模块(如 fs, path, os 等),但有些第三方库(如 express)需要通过 npm install express 来安装才能用。

Q3:我可以在没有互联网的情况下使用 Node.js 吗?

答:可以。一旦你安装好了必要的模块,Node.js 可以本地离线运行。不过第一次安装包时需要联网。

Q4:Node.js 是不是只能写后端?

答:当然不是。Node.js 不仅可用来构建网站后台(如 REST API),还能用来制作命令行工具、自动发布脚本、构建前端项目甚至爬虫等。


学习建议:下一步该往哪里走?

JavaScript框架对比-1

恭喜你完成了第一篇 Node.js 教程!你现在已经有能力写出命令行小程序了!

以下是几个建议的学习路径:

✅ 初级阶段:

  • 学习使用 Express 框架创建简单 Web 服务器
  • 学习 Node.js 的 http、url、querystring 模块
  • 了解 package.json 和 npm 的基本用法
  • 掌握异步编程中的 Promise 与 async/await

💡 推荐学习资源:

  • 官方文档:https://nodejs.org/api/(英文版)
  • 书籍:《Node.js实战》《Node.js开发指南》
  • 视频课:B站搜索“Node.js 零基础入门”

🔄 项目练手方向:

  • 编写一个天气查询命令行工具(调用开放API)
  • 开发一个静态网站服务器
  • 创建一个简易博客后端 API(配合 MongoDB)

总结

在本文中,我们:

  • 简单介绍了 Node.js 是什么以及它的用途;
  • 搭建了完整的开发环境;
  • 解释了 Node.js 的关键概念并通过实际代码展示;
  • 实践了一个打招呼机器人的完整项目;
  • 回答了初学者常遇到的问题;
  • 还提供了后续学习的路径建议。

Node.js 是一门非常强大又实用的技术,只要你愿意动手练习,每天都能收获新的成长!

接下来,就可以勇敢地探索 Express、MongoDB、RESTful API、部署 Node 应用等内容了!

一起加油,Happy Coding!🌟

评论 0

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