Node.js新手教程:从零开始学习服务器端JavaScript
开篇:Node.js是什么?它能做什么?

你可能听说过 JavaScript 是一种前端语言,用来让网页动起来,比如按钮点击、弹窗提示等功能。但其实,JavaScript 不仅仅只能用在浏览器里!
Node.js 让 JavaScript 可以运行在电脑的“后台”,也就是我们常说的“服务器”上。这样一来,JavaScript 就不再只是页面上的小功能,而是可以构建网站后端、搭建API、处理数据、连接数据库等等。
简单地说:
- 前端 JavaScript:负责网页的交互(比如按钮动效)
- Node.js:负责服务器逻辑(比如用户登录、数据存储)
有了 Node.js,你现在可以用一种熟悉的语言(JavaScript)去开发完整的网站或应用。
环境准备:搭建你的第一个Node.js开发环境

第一步:安装Node.js
要使用 Node.js,首先得把它安装到你的电脑上。
Windows系统:
- 打开官网:https://nodejs.org
- 下载 LTS 版本(长期支持版,更适合初学者)
- 双击安装程序,一路下一步即可完成安装
macOS系统:
推荐使用 Homebrew 安装:
brew install node
Linux系统:
使用 apt-get(Ubuntu为例):
sudo apt update
sudo apt install nodejs
小贴士:安装完成后,在终端输入
node -v和npm -v可查看是否安装成功。
第二步:准备开发工具
建议你使用一个代码编辑器来写 Node.js 代码。推荐两个:
- VS Code(Visual Studio Code):免费、强大、插件丰富
- WebStorm:专业级IDE,适合深入学习后使用
下载地址:
- VS Code: https://code.visualstudio.com/
- WebStorm: https://www.jetbrains.com/webstorm/
第三步:创建第一个Node.js项目
- 新建一个文件夹,比如叫
my-first-node-app - 在这个文件夹中新建一个文件:
app.js - 输入以下代码:
console.log("你好,Node.js!");
- 打开终端(命令行),进入该文件夹并运行:
node app.js
如果终端输出了:
你好,Node.js!
恭喜你,你的第一个 Node.js 程序运行成功啦!
核心概念:理解Node.js的关键知识点

下面是一些 Node.js 中的核心概念,我会用最简单的语言解释清楚。
模块化编程:什么是模块?
在 Node.js 中,我们把代码拆分成一个个“模块”,就像乐高积木一样。每个模块只做一件事,组合在一起就可以做大事。
Node.js 提供了一些内置模块,比如:
- fs:操作文件和文件夹
- path:路径拼接
- http:创建 HTTP 服务器
你也可以自己定义模块。
示例:使用 fs 模块读取文件
新建一个文本文件 hello.txt,内容为:
这是测试文件的内容。
再修改 app.js 内容如下:
const fs = require('fs');
fs.readFile('hello.txt', 'utf8', function(err, data) {
if (err) {
console.error("读取文件出错", err);
} else {
console.log("文件内容是:", data);
}
});
运行命令:
node app.js
你会看到输出:
文件内容是: 这是测试文件的内容。
异步编程:Node.js的“多线程”方式
Node.js 的一大特点就是异步非阻塞。这意味着它不需要等上一个任务完成才进行下一个任务,而是边做边继续执行别的任务。
这听起来有点抽象?那我打个比方:
想象你在点外卖:
- 同步方式:下单 → 等待送达才能继续干别的事
- 异步方式:下单 → 继续看视频、打电话,外卖送到时再吃
在 Node.js 中,我们通常使用 回调函数、Promise 或 async/await 来处理异步任务。
示例:使用 async/await 实现异步文件读取
const fs = require('fs').promises;
async function readMyFile() {
try {
const data = await fs.readFile('hello.txt', 'utf8');
console.log("文件内容是:", data);
} catch (err) {
console.error("出错了!", err);
}
}

readMyFile();
运行效果和前面一样,但这次用了更现代的方式:async/await。
包管理器 NPM:Node.js的“软件商店”
NPM 是 Node.js 自带的一个工具,叫做“包管理器”。你可以通过它下载、安装别人已经写好的代码库(称为“包”或“模块”),然后在你的程序中直接使用。
示例:安装和使用一个第三方包 lodash
Lodash 是一个非常流行的工具类库,提供了很多实用函数。
安装:
npm install lodash
使用示例:
const _ = require('lodash');
const array = [1, 2, 3, 4, 5];
const shuffled = _.shuffle(array);
console.log("随机打乱后的数组:", shuffled);
运行结果类似:
随机打乱后的数组: [3, 1, 5, 2, 4]
这就是 NPM 的强大之处 —— 轻松引入已有工具,节省开发时间!
HTTP服务器:打造自己的网站后端
Node.js 最常见的用途之一就是搭建一个 Web 服务器。我们可以用它来接收浏览器请求,返回 HTML 页面或 JSON 数据。
示例:创建一个基础HTTP服务器
const http = require('http');
// 创建服务器
const server = http.createServer((req, res) => {
// 设置响应头
res.writeHead(200, {'Content-Type': 'text/plain'});
// 响应内容
res.end('欢迎访问我的Node.js服务器!');
});
// 监听端口
server.listen(3000, () => {
console.log('服务器正在监听端口 3000...');
});
保存为 server.js,运行:
node server.js
打开浏览器,访问:
http://localhost:3000
你会看到一行文字:
欢迎访问我的Node.js服务器!
🎉 你刚刚搭建了一个属于自己的小型 Web 服务器!
实战项目:做一个简单的天气查询 API

接下来我们将一步步用 Node.js 构建一个“天气查询接口”。
功能说明:
- 用户访问
/weather?city=北京这样的地址 - 我们调用一个第三方天气 API 获取数据
- 返回 JSON 格式的天气信息
第一步:选择一个天气 API 接口
这里我们用一个公开的测试 API:
https://api.weatherapi.com/v1/current.json?key=YOUR_API_KEY&q=北京
你需要注册获取一个免费的 KEY(可参考 weatherapi.com 注册获取)。
第二步:安装请求网络数据的模块
Node.js 默认没有发送网络请求的功能,我们需要借助第三方模块 axios。
安装:
npm install axios
第三步:编写完整代码
const http = require('http');
const url = require('url');
const axios = require('axios');
// 替换成你的 API KEY
const API_KEY = '你的APIKEY';
// 创建服务器
const server = http.createServer(async (req, res) => {
const parsedUrl = url.parse(req.url, true);
const query = parsedUrl.query;
if (parsedUrl.pathname === '/weather') {
const city = query.city;
if (!city) {
res.writeHead(400, {'Content-Type': 'application/json'});
res.end(JSON.stringify({ error: '请指定城市名' }));
return;
}
try {
const response = await axios.get(`https://api.weatherapi.com/v1/current.json?key=${API_KEY}&q=${city}`);
res.writeHead(200, {'Content-Type': 'application/json'});
res.end(JSON.stringify(response.data));
} catch (error) {
res.writeHead(500, {'Content-Type': 'application/json'});
res.end(JSON.stringify({ error: '获取天气数据失败' }));
}
} else {
res.writeHead(404, {'Content-Type': 'application/json'});
res.end(JSON.stringify({ error: '未找到该路由' }));
}
});
// 启动服务器
server.listen(3000, () => {
console.log('天气API服务器启动在 http://localhost:3000');
});
第四步:测试接口
启动服务器:
node weather-server.js
在浏览器访问:
http://localhost:3000/weather?city=北京
如果一切顺利,你会看到类似如下格式的 JSON 响应数据:
{
"current_condition": {
"humidity": 68,
"temp_C": 25,
"weatherDesc": [
{ "value": "Partly cloudy" }
]
}
}
🎉 你的第一个真正的 Node.js 后端接口完成了!
常见问题:新手容易遇到的坑及解决办法
问题1:运行 node app.js 报错:Error: Cannot find module XXXX
原因:缺少某个依赖模块
解决办法:先运行 npm install xxxxx 安装所需模块
问题2:Node.js代码运行没反应,也不报错
原因:可能是异步代码没有触发或者逻辑有错误
解决办法:加 console.log() 打印调试,或者用断点调试工具
问题3:访问不到本地启动的服务器
原因:可能是防火墙阻挡、或IP地址不对
解决办法:确保用的是 localhost 或正确 IP;关闭防火墙试试
问题4:如何查看 Node.js 的版本?
运行:
node -v
问题5:如何退出 Node.js 启动的服务器?
按键盘快捷键:
Ctrl + C
学习建议:下一步该学什么?

恭喜你完成了 Node.js 的入门学习!你现在可以:
✅ 理解 Node.js 的基本原理
✅ 会搭建本地服务器
✅ 使用异步处理数据
✅ 构建一个简单的 API 接口
接下来推荐你继续学习以下几个方向:
1. Express.js —— 更方便的 Node.js Web 框架
Express 可以帮你更容易地搭建 Web 应用,简化路由、中间件、模板引擎等操作。
学习资源:Express 中文文档
2. MongoDB + Mongoose —— 搭配数据库
Node.js 非常适合搭配 NoSQL 数据库 MongoDB。Mongoose 是它的常用 ORM 工具。
3. RESTful API 设计与实践
学习怎么设计规范的 API 接口,是迈向全栈开发的重要一步。
4. JWT 登录认证机制
了解用户登录、权限验证的工作原理
结语:坚持就是胜利!
前端开发者学完 Node.js 后,就可以从前到后独立开发完整的项目,这对职业发展帮助极大。
记住一句话:“不要怕犯错,只要不停敲代码,你就一直在进步。”
现在就打开你的编辑器,从今天起,写属于你自己的 Node.js 项目吧!🚀

评论 0