课程名称: Node.js工程师养成计划
课程章节: Node 框架篇 - Express 框架重构项目逻辑
课程讲师: 北瑶
课程内容:
Express 是什么?
Express 是基于 Node.js 平台,快速、开放、极简的 Web 开发框架。提供一系列强大特性帮助你创建各种Web应用。
Express 本身是极简的,它仅仅提供了 web 开发的基础功能,不对 Node.js 已有的特性进行二次抽象,只是在它之上扩展了 web 应用所需的基本功能。
Express 特性
- 简单易学
- 丰富的基础 API 支持,以及常见的 HTTP 辅助程序,例如重定向、缓存等
- 强大的路由功能
- 灵活的中间件
- 高性能
- 非常稳定(它的源代码几乎百分百的测试覆盖率)
Express 应用场景
- 传统的 Web 网站
- 接口服务
- 服务端渲染中间层
- 开发工具
Express 项目构建
- 创建文件夹, 使用
npm init -y
生成 node 项目元数据文件 - 使用
npm install express
下载安装 express 框架 - 使用生成器, 直接使用
npx express-generator
进行项目模板代码的下载安装
// 导入 express
const express = require('express')
const app = express()
const port = 3000
// 监听get请求
app.get('/', (req, res) => {
// send方法可自动识别要响应的字符集
res.send('Hello World!')
})
app.listen(port, () => {
console.log(`Run http://localhost:${port}`)
})
我们可以借助核心模块 util 中的 promisify 方法将 fs 模块进行转为 promise 方式
const {promisify} = require('util')
const readFile = promisify(fs.readFile)
const writeFile = promisify(fs.writeFile)
处理客户端 post 请求数据
// 常见的请求头中的数据类型
{
'content-type': 'application/json', // 纯 json 格式字符串
'content-type': 'application/x-www-form-urlencoded', // HTML 表单
'content-type': 'multipart/form-data; boundary=------699459260', // html 表单文件上传
}
express 中,获取不同的客户端请求类型
// 配置解析表单请求体:application/json
app.use(express.json())
// 解析表单请求体:application/x-www-form-urlencoded
app.use(express.urlencoded())
// 上面两行代码表示, 我们可以接收 json 与 unlencoded 类型的数据
给客户端抛出错误
res.status(错误码).json({
error: '错误信息'
})
修改用户信息 put 请求
app.put('/:id', (req, res) => {})
学习心得
通过这章的学习, 体验了 express框架 对 原生node.js 的封装, 让原生的操作更简单