一、什么是Express
基于 Node.js 平台,快速、开放、极简的 Web 开发框架 Express 是一个保持最小规模的灵活的 Node.js Web 应用程序开发框架,为 Web 和移动应用程序提供一组强大的功能。 本质:就是一个npm 上的第三方包,提供了快速创建Web 服务器的便捷方法。 通俗的理解:Express的作用和Node.js内置的 http模块类似,是专门用来创建Web服务器的。
二、安装
代码语言:javascript复制npm i express@4.17.1
三、使用
代码语言:javascript复制// 1、导入Express模块
const express = require('express')
// 2、创建web服务器
const server = express()
// 3、启动web服务器
server.listen(80, () => {
console.log('express server running at http://127.0.0.1');
})
四、监听get、post请求,并响应数据
代码语言:javascript复制server.get('/user', (req, res) => {
res.send({
name: '张三',
age: 18
})
})
server.post('/user', (req, res) => {
res.send("这是post请求")
})
get:
post:
五、通过req.query
获取URL中携带的查询参数
req.query
默认是一个空对象
server.get('/getUserById',(req,res)=>{
console.log('id==',req.query.id)
res.send(req.query)
})
六、通过req.params
获取URL中的动态参数
req.params
默认是一个空对象
server.get('/user/:id/:gender', (req, res) => {
console.log('id===', req.params.id);
console.log('gender===', req.params.gender);
res.send(req.params)
})
七、通过express.static()托管静态资源
express提供了一个非常好用的函数,叫做express.static(),通过它,我们可以非常方便地创建一个静态资源服务器,例如,通过如下代码就可以将static目录下的图片、CSS文件、JavaScript 文件对外开放访问了:
代码语言:javascript复制server.use(express.static('./static'))
/*如果访问不到,那么大概率是路径问题,推荐导入path模块后用join拼接路径*/
server.use(express.static(path.join(__dirname,'./static')))
文件结构:
注意:Express在指定的静态目录中查找文件,并对外提供资源的访问路径。因此,存放静态文件的目录名不会出现在URL中,访问路径如下:
- 访问img001.jpg
路径:
http://127.0.0.1/img/img001.jpg
结果:
- 访问index.html
路径:
http://127.0.0.1/index.html
结果:
如果要托管多个静态资源,多次调用express.static()
就好,资源访问顺序以添加顺序为准
如果想要访问前缀,可以按一下代码实现:
给use函数参入前缀参数
代码语言:javascript复制server.use('/static',express.static(path.join(__dirname,'./static')))
访问路径变成:http://127.0.0.1/static/index.html