一:首先需要给大家介绍一下Express~~~
Express 是一个基于 Node.js 平台,快速、开放、极简的 web 开发框架。
- 框架:是一个半成品,用来快速解决一类问题;库就是工具集,使用非常灵活) (框架有:bootstrap, lay-ui, express, vue, react ; 库:zepto.js , jQuery, day.js, underscore, lodash, art-template, axios, echart.....)
- web 开发: 对不同的请求能够显示页面;提供接口服务;
(简单来说,就是很好用,很强大,接下来的介绍为了让大家快速使用它)
参考链接:
Express 官网:http://expressjs.com/
Express 中文文档(非官方):http://www.expressjs.com.cn/
Express GitHub仓库:https://github.com/expressjs/express
理解:
- 我们前面用http模块来支持web服务,现在要用express来写web服务
- 对于node.js来说,Express 是一个第三方模块,有丰富的 API 支持,强大而灵活的中间件特性
- Express 不对 Node.js 已有的特性进行二次抽象,只是在它之上扩展了 Web 应用所需的基本功能
(为了大家后续更好的学习,需要给大家介绍一下什么是中间件)
中间件
- 给用户提供更好的服务
- 可方便的拆卸
(下图可以帮助大家更好,更直观的理解)
运行第一个express程序
expresss 是一个第三方模块(在npm上可以下载),在使用它之前要先去下载它,在下载包之前要先创建项目,并通过npm init 创建package.json文件。
(1)创建项目并初始化
创建一个全新的文件夹(目录名不要有汉字,也不要某个包的名字),在此目录下运行npm init -y
命令来生成package.json文件
(2)下载express包
与安装其他的第三方包一致,本地安装 (npm i express)
下载完成后文件夹会出现这些文件:
注意:
- 项目目录名字不要取中文,也不要取为
express
如果安装不成功:
- 换个网络环境
- 运行下
npm cache clean -f
,再重新运行下载命令试试
二:开始快速创建web服务器
在项目根目录下新建一个js文件,例如app.js,其中输入代码如下:
// 0. 加载 Express
const express = require('express')
// 1. 调用 express() 得到一个 app
// 类似于 http.createServer()
const app = express()
// 2. 设置请求对应的处理函数
// 当客户端以 GET 方法请求 / 的时候就会调用第二个参数:请求处理函数
app.get('/', (req, res) => {
res.send('hello world')
})
// 3. 监听端口号,启动 Web 服务
app.listen(3000, () => console.log('app listening on port 3000!'))
对于代码说明:
说明:
- app.get('/')相当于添加事件监听:当用户以get方式求"/"时,它后面的回调函数会执行,其回调函数中的req,res与前面所学http模块保持一致。
- res.send()是exprss框架给res对象补充提供的方法(http模块中的res是没有这个方法的),用于结束本次请求。类似的还有res.json(), res.sendFile() 。
- express 框架会增强req,res的功能