一、介绍
Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具以及中间件
二、引入
let express = require('express') // 引入express
let app = express() // 相当于 http.createServer(app)
// 访问根路由
app.get('/',(request,response) => {
res.send('Hello World')
})
// 监听3000端口
let server = app.listen(3000, '127.0.0.1', () => {
let host = server.address().address // host域
let port = server.address().port // 端口号
console.log(`Server running at http://${host}:${port}`)
})
基本的一个服务器就搭建完毕了
我们访问 http://127.0.0.1:3000
三、请求和响应
我们看到回调函数具有 request 和 response 俩个对象,他们分别代表 请求和响应
Request 对象
request 对象表示 HTTP 请求报文,包含了请求头,请求体
常见的属性:
名称 | 作用 |
---|---|
request.app | 当callback为外部文件时,用req.app访问express的实例 |
request.baseUrl | 获取路由当前安装的URL路径 |
request.cookies | 获取Cookie |
request.hostname | 获取主机名 |
request.ip | 获取IP地址 |
request.originalUrl | 获取原始请求url |
request.path | 获取请求路径 |
request.query | 获取URL查询字符串 |
request.route | 获取当前匹配的路由 |
request.accepts() | 获取可接受的请求文档类型 |
request.get() | 获取指定的请求头 |
request.is() | 判断请求头Content-Type的MIME类型 |
… | … |
Response 对象
request 对象表示 HTTP 响应报文,代表请求后的响应数据
常见的属性有:
名称 | 作用 |
---|---|
response.app | 当callback为外部文件时,用req.app访问express的实例 |
response.append() | 添加相应头 |
response.set() | 在res.append()后将重置之前设置的头 |
response.cookie(name,value [,option]) | 设置Cookie |
response.clearCookie() | 清除Cookie |
response.download() | 传输指定类型的文件 |
response.get() | 返回指定的响应头 |
response.json() | 传输json |
response.jsonp() | 传输jsonp |
response.redirect() | 设置响应的Location HTTP头,并且设置状态码302 |
response.render(view,[locals],callback) | 渲染一个view |
response.send() | 传输响应 |
response.sendFile(path [,options] [,fn]) | 传送指定路径的文件 -会自动根据文件extension设定Content-Type |
response.set() | 设置HTTP状态码 |
response.type() | 设置Content-Type的MIME类型 |
… | … |
Express – 路由
响应HTTP请求的路径
let express = require('express')
let app = express()
// 包含请求方式,路径,回调函数
app.get('/list', (req, res) => res.send('list'))
app.post('/add', {req, res} => res.send('add'))
app.put('/fix', {req, res} => res.send('fix'))
app.delete('/delete', {req, res} => res.send('delete'))
Express – 搭建静态资源库
Express 提供了内置的中间件 express.static 来设置静态文件如:图片, CSS, JavaScript 等。
直接通过路径访问public下面的资源
app.use(express.static('public'))
也可以加一层目录
app.use('/public', express.static('public'))
访问 http://127.0.0.1:3000/public/logo.png