使用express创建基本的web服务器
// 1、导入express
const express = require('express')
// 2、创建web服务器
const app = express()
// 3、调用app.listen(端口号, 成功的回调)
app.listen(8085, () => {
console.log('服务器运行起来了')
})
监听get请求
// 参数1:客户端请求的url地址
// 参数2:回调函数
// req: 请求对象(包含了请求相关的属性和方法)
// res: 请求对象(包含了响应相关的属性和方法)
app.get('/index', (req, res) => { })
监听post请求
// 参数1:客户端请求的url地址
// 参数2:回调函数
// req: 请求对象(包含了请求相关的属性和方法)
// res: 请求对象(包含了响应相关的属性和方法)
app.post('/index', (req, res) => { })
把内容响应给客户端
通过res.send()
方法,可以把处理好的内容,发送给客户端
app.get('/index', (req, res) => {
res.send({name: 'xm', age:18})
})
GET获取参数
通过req.query
对象,可以访问到客户端查询字符串的形式,发送到服务器的参数
app.post('/index', (req, res) => {
// req.query 默认是个空对象
// 客户端使用 ?name=aa&age=20 这种查询字符串的形式发送到服务器的参数
// 可以通过 req.query.name 、req.query.age 访问到
console.log(req.query)
})
获取URL中的动态参数 req.params
app.get('/index/:id/:cc', (req, res) => {
// req.params 默认是个空对象
// 客户端使用 /index/1/2 这种查询字符串的形式发送到服务器的参数
// 可以通过 req.params.id 、req.params.cc 访问到
console.log(req.params) // { id: '1', cc: '2' }
})
托管静态资源
1、express.static()
express 提供了一个非常好用的函数,叫做 express.static(),通过它,我们可以非常方便地创建一个静态资源服务器,例如,通过如下代码就可以将public目录下的图片、CSS文件、JavaScript文件对外开放访问了:
注意:Express在指定的静态目录中查找文件,并对外提供资源的访问路径。因此,存放静态文件的目录名不会出现在URL 中。
app.use(express.static('./clock'))
2、托管多个静态资源目录
如果要托管多个静态资源目录,请多次调用express.static()
函数:
访问静态资源文件时,express.static()函数会根据目录的添加顺序查找所需的文件。
如果重名则只显示最先查找到的文件
app.use(express.static('./clock'))
app.use(express.static('./files'))
3、挂载路径前缀
如果希望在托管的静态资源访问路径之前,挂载路径前缀,则可以使用如下的方式:
app.use('/clock', express.static('./clock'))
现在,你就可以通过带有/public 前缀地址来访问public目录中的文件了:
http://localhost:3000/clock/images/kitten.jpg