Node.js是什么?¶
你可能知道JavaScript可以在浏览器里写代码,让网页动起来。但Node.js让JavaScript“走出”了浏览器,能在服务器端运行。它就像一个“JavaScript的后端管家”,让你用熟悉的JavaScript语法来开发后端程序,比如搭建网站服务器、处理数据库请求等。
Node.js基于Google的V8引擎(就是浏览器里跑JS的那个引擎),让JavaScript从前端扩展到了后端,实现了“全栈JavaScript开发”。
为什么要学Node.js?¶
对初学者来说,Node.js有几个特别的优势:
- JavaScript全栈开发:前后端都用JavaScript,不用学多种语言(比如前端HTML/CSS/JS,后端Python/Java),代码复用性更高。
- 非阻塞I/O:想象你点外卖,传统后端可能要“等一个订单处理完才接下一个”,而Node.js像“同时接10个订单的服务员”,能高效处理大量并发请求(比如聊天软件、在线直播)。
- 轻量高效:适合开发小而快的项目,比如个人博客、API接口、实时聊天工具等。
- 丰富生态:通过npm(Node Package Manager,类似前端的包管理器)可以轻松安装各种工具包,比如处理数据库、文件操作、路由管理等。
安装Node.js(简单几步)¶
- 去官网下载:打开 Node.js官网,推荐选“LTS版本”(稳定版,适合初学者)。
- 安装:Windows/Mac/Linux直接双击安装包,按提示下一步(Windows用户注意勾选“Add to PATH”,方便命令行调用)。
- 验证安装:打开命令行工具(Windows用“cmd”或“PowerShell”,Mac/Linux用“终端”),输入:
node -v # 显示Node.js版本,比如v20.10.0
npm -v # 显示npm版本,比如10.2.3
如果显示版本号,说明安装成功!
第一个Node.js程序:“Hello World”服务器¶
现在,让我们用Node.js写一个简单的HTTP服务器,它会在你访问时返回“Hello World”。
- 创建文件:在电脑任意位置新建一个文本文件,改名为
server.js(后缀必须是.js)。 - 写代码:
// 引入Node.js内置的http模块(处理HTTP请求的工具)
const http = require('http');
// 创建服务器实例,处理请求和响应
const server = http.createServer((req, res) => {
// 设置响应头:状态码200(成功),内容类型是文本
res.writeHead(200, { 'Content-Type': 'text/plain' });
// 响应内容:Hello World
res.end('Hello World!\n');
});
// 让服务器监听3000端口(端口号可以改,比如8080)
const PORT = 3000;
server.listen(PORT, () => {
console.log(`服务器已启动!访问 http://localhost:${PORT}`);
});
- 运行程序:在命令行进入
server.js文件所在的文件夹,输入:
node server.js
命令行会显示 服务器已启动!访问 http://localhost:3000。
4. 测试:打开浏览器,输入 http://localhost:3000,就能看到“Hello World!”啦!
Node.js的核心能力:文件操作与包管理¶
除了HTTP服务器,Node.js还能做很多事:
1. 文件系统(fs模块)¶
用 fs 模块可以读写本地文件。比如读取一个文本文件:
const fs = require('fs');
// 异步读取文件(非阻塞,不卡住其他操作)
fs.readFile('example.txt', 'utf8', (err, data) => {
if (err) {
console.error('读取失败:', err);
return;
}
console.log('文件内容:', data);
});
注意:需要提前创建 example.txt 文件(比如在同一文件夹下写点内容),运行 node filename.js 就能看到文件内容。
2. 包管理器(npm)¶
npm是Node.js的“应用商店”,可以安装别人写好的工具包。比如安装一个生成艺术字的包 figlet:
- 安装包:在命令行执行
npm install figlet # 安装figlet包(--save可以把依赖写入package.json)
- 使用包:
const figlet = require('figlet');
figlet('Node.js真好玩!', (err, data) => {
console.log(data);
});
运行后会看到类似“Node.js真好玩!”的艺术字效果。
总结:Node.js入门不难,实践出成果¶
Node.js的学习门槛低,代码直观,适合初学者快速上手。从“Hello World”服务器开始,逐步尝试文件操作、调用第三方包,你就能感受到用JavaScript开发后端的乐趣。
后续可以学习Express框架(简化路由、中间件等),或者开发简单的全栈项目(比如带数据库的博客)。记住:编程最重要的是动手实践,别怕犯错,多敲代码就能进步!
现在,试着写一个自己的“小项目”吧——比如用Node.js搭建一个简单的待办事项列表API,或者读取本地图片并返回给浏览器!