今天完成了 Express 的安装、项目初始化、第一个 GET/POST 接口,以及解决了 Windows 下 nodemon 权限问题。
一、Express 安装流程(记住这 4 步)
bash
# 1. 新建项目文件夹,进入
mkdir my-express-app
cd my-express-app
# 2. 初始化 package.json(-y 表示全部默认)
npm init -y
# 3. 安装 express
npm install express
# 4. 手动创建 index.js(Windows 不支持 touch 命令)
每个新项目都要重复这 4 步,项目之间独立。
二、最小 Express 服务器代码
关键区别(与原生 http 对比)
| 原生 http | Express |
|---|---|
res.end() | res.send()(自动处理中文、JSON) |
手动 setHeader | 不需要,res.send 自动处理 |
手动判断 req.url | app.get('/', fn) |
以后写 Express,默认用
res.send(),忘掉res.end()。
三、今天踩过的坑
坑 1:npm init-y 报错
| 错误写法 | 正确写法 |
|---|---|
npm init-y | npm init -y(-y 前面有空格) |
坑 2:touch index.js 报错
touch是 Mac/Linux 命令,Windows 不支持- 解决:手动在 VS Code 里新建文件,或用
type nul > index.js
坑 3:中文乱码
| 错误写法 | 正确写法 |
|---|---|
res.end('你好') | res.send('你好') |
坑 4:PowerShell 跑 nodemon 报权限错误
- 原因:Windows 禁止执行脚本
- 解决:把 VS Code 默认终端改成 cmd
修改默认终端步骤:
Ctrl + Shift + P- 输入
Terminal: Select Default Profile - 选择
Command Prompt - 关掉终端,新建一个(
+)
四、Express vs 原生 http 对照表
| 对比项 | 原生 http | Express |
|---|---|---|
| 创建服务器 | http.createServer() | express() |
| 路由判断 | if (req.url === '/') | app.get('/', fn) |
| 返回内容 | res.end() | res.send() |
| 处理中文 | 手动 setHeader | 自动 |
| 处理 JSON | 手动 JSON.stringify | 自动 |