本节摘要:用 npm 快速初始化 Express 项目。本节讲清环境(Node、npm)、项目初始化命令、第一个 Express 应用,以及"package.json 是项目身份证"的核心理解。
阅读完本节,你应当能够:
"Express 项目怎么开始?"——比 Spring 和 Django 都简单:npm init 初始化,npm install express 装框架,写一个文件跑起来。从零到"Hello World"只需几分钟,这就是轻量框架的速度。
项目初始化四步:
# 安装 Node.js(自带 npm) node -v # 验证 npm -v # 验证
npm init -y # 生成 package.json npm install express # 安装 Express
// app.js const express = require('express') const app = express() app.get('/', (req, res) => { res.send('Hello, Express!') }) app.listen(3000, () => console.log('运行在 3000 端口'))
node app.js # 访问 localhost:3000
💡 关键直觉:package.json 是项目的"身份证"——它记录依赖、脚本、入口。
npm install按它恢复依赖,换机器也能跑。
| 命令 | 作用 |
|---|---|
| npm init | 初始化项目 |
| npm install 包名 | 安装依赖 |
| npm run xxx | 运行脚本 |
⚠️ 常见坑:全局安装项目依赖。依赖应装进项目的 node_modules(本地),全局装会导致"换环境就挂"——本地安装 + package.json 记录是标准。
跑起来了,下一节学核心——中间件机制。
Q1:npm 和 Node.js 是什么关系?
npm 是随 Node.js 一起安装的包管理器,负责安装、卸载、管理项目依赖。你写的 package.json 就是依赖清单:记录项目名、入口文件、依赖列表、脚本命令。npm install 按它把依赖装进项目目录(node_modules)。所以"换台机器能跑",靠的就是 package.json 加 npm install 还原环境。
Q2:package.json 里最关键的几个字段是什么?
name(项目名)、version(版本)、main(入口文件,Node 启动时加载它)、scripts(脚本命令,比如 npm start 对应 node app.js)、dependencies(运行时依赖)、devDependencies(开发期依赖,比如测试工具)。其中 scripts 是团队习惯的载体:约定 npm start 启动、npm test 跑测试,不用记一堆命令行。还有 package-lock.json 锁住精确版本,保证团队装出一样的依赖树。
Q3:依赖为什么必须装在项目本地而不是全局?
全局安装意味着所有项目共享一套包,版本冲突是必然的(项目 A 要 express 4、项目 B 要 express 5,全局只能有一个)。本地安装把依赖放在项目的 node_modules 里,每个项目独立版本。这正是 Python venv、Java Maven 仓库在做的事——项目依赖隔离。所以标准做法是:npm install 包名(默认装本地并写入 package.json),别用 -g 全局装项目依赖。
Q4:npm init 和 npm install 有什么区别?
npm init 是"初始化项目",生成 package.json(描述项目与依赖清单的起始文件);npm install 是"安装依赖",把你声明的包下载到 node_modules,并写入/更新 package.json 的依赖列表。理解这个区别就懂了"新项目先 init、再 install"的流程。
动手建议:按本节命令从零走一遍:安装 Node、验证版本、npm init 初始化、npm install express、写 app.js、node 启动、访问端口。然后做一次"依赖还原"实验:删掉 node_modules 目录,执行 npm install,观察它按 package.json 重新装回全部依赖——这个过程会让你深刻理解 package.json 作为"项目身份证"的作用。再在 package.json 的 scripts 里加一个 start 命令,用 npm start 启动,养成用脚本管理项目的习惯。
本节练习的目标,是从一个空目录亲手建起能跑的 Express 应用。步骤如下:
第一步,确认环境。在命令行输入两个命令验证 Node 和 npm 的版本。验收标准:两个命令都有版本号输出,没有"不是内部命令"的报错。
第二步,初始化项目。在空目录里执行 npm 初始化命令,生成 package.json。验收标准:目录里出现 package.json,内容包含项目名、版本、入口等字段。
第三步,安装 Express。执行安装命令,安装完成后打开 package.json,看依赖列表里出现了 express 和版本号。验收标准:依赖已写入 package.json,且目录里出现 node_modules 文件夹。
第四步,写第一个应用。新建入口文件,写上本节的最小应用代码:创建应用、定义一个返回问候的接口、监听端口。验收标准:代码与本节示例一致,路径和端口明确。
第五步,启动并访问。用 node 命令启动,看到端口监听日志,然后浏览器访问对应地址。验收标准:页面返回问候语——第一个 Express 应用跑通了。
第六步,配置启动脚本。在 package.json 的 scripts 里添加 start 命令,之后用 npm start 启动。验收标准:npm start 能正常启动应用,你开始用脚本管理项目。
第六步(可选)验证依赖还原。删除 node_modules,执行 npm install,观察依赖被重新装回。验收标准:应用重新启动依然正常——package.json 的"项目身份证"作用得到了验证。
六步走完,你经历了 Express 项目从零到跑通的全过程。这几步和前面两个框架的环境搭建对照着看,你会惊叹于 Node 生态的轻量直接。
Express 起步极快:装 Node、初始化、装 Express、写一个文件、跑起来。package.json 是项目身份证,npm start 是统一入口。亲手走一遍,五分钟就能跑通第一个接口。