# Express 基本使用

  • 创建基本的 Web 服务器
// 1. 导入 express
const express = require('express')
// 2. 创建 web 服务器
const app = express()
// 3. 调用 app.listen (端口号,启动成功后的回调函数) 启动服务器
app.listen(80, () => {
  console.log('express server running at http://127.0.0.1');
})

# 监听 GET/POST 请求

  • 通过 app.get()||app.post() , 可以监听客户端的 GET 请求,具体格式如下
// 参数一 客户端请求的 URL 地址
// 参数二 请求对应的处理函数
//   req 请求对象 (包含了与请求相关的属性与方法)
//   res 响应对象 (包含了与响应相关的属性与方法)
app.get('URL', (req, res) => {
    console.log('express server running at http://127.0.0.1');
})
app.post('URL', (req, res) => {
    console.log('express server running at http://127.0.0.1');
})
  • 通过 res.send() 方法,可以把处理好的内容,发送给客户端
app.get('/user', (req, res) => {
  // 调用 express 提供的 res.send () 方法 向客户端响应一个 JSON 对象
  res.send({ name: 'saber', age: 16 })
})
app.post('/user', (req, res) => {
  // 调用 express 提供的 res.send () 方法 向客户端响应一个文本字符串
  res.send('The request is successful')
})

# send 响应数据

  • 通过 res.send() 方法,可以把处理好的内容,发送给客户端
// 1. 导入 express
const express = require('express')
// 2. 创建 web 服务器
const app = express()
// 3. 启动 web 服务器
app.listen(8001, (req, res) => {
  console.log(req, res);
  console.log('express server running at http://127.0.0.1');
})
// 4. 监听客户端的 GET 和 POST 请求 并向客户端响应具体的内容
app.get('/user', (req, res) => {
  // 调用 express 提供的 res.send () 方法 向客户端响应一个 JSON 对象
  res.send({ name: 'saber', age: 16 })
})
app.post('/user', (req, res) => {
  // 调用 express 提供的 res.send () 方法 向客户端响应一个文本字符串
  res.send('The request is successful')
})

# req.query

  • 通过 req.query 对象,可以访问到客户端通过查询字符串的形式,发送到服务器的参数
// postman: http://127.0.0.1:8001/user?name=saber&age=16
app.get('/user', (req, res) => {
  // 通过 req.query 可以获取到客户端发送过来的查询参数
  // 注意 默认情况下 req.query 是一个空对象
  console.log(req.query);
  
  // console.log(req.query, '||', res);
  // 调用 express 提供的 res.send () 方法 向客户端响应一个 JSON 对象
  // res.send({ name: 'saber', age: 16 })
  res.send(req.query)
})

# req.params

  • 通过 req.params 对象,可以访问到 URL 中,通过 : 匹配到的动态参数
// postman: http://127.0.0.1:8001/user/233
// 注意 这里的 :id 是一个动态的参数
app.get('/user/:id', (req, res) => {
  console.log(req.params);
  //req.params 是动态匹配到的 URL 参数,默认也是一个空对象
  res.send(req.params)
})

# express.static()

  • express 提供了一个函数 express.static() 。通过它,可以非常方便创建一个静态资源服务器
  • 如果需要托管多个静态资源目录,请多次调用 express.static() 函数,访问静态资源是,会根据目录的添加顺序查找所需文件
const express = require('express')
const app = express()
// 调用 express.static 方法,传入资源的访问路径,快速的对外提供静态资源
app.use(express.static('path1'))
app.use(express.static('path2'))
app.listen(8001, (req, res) => {
  console.log('express server running at http://127.0.0.1');
})
  • 希望托管的静态资源访问路径之前,挂载路径前缀,如下
app.use('/public', express.static('path))

# express 路由

  • 在 Express 中路由指的是客户端的请求与服务器处理函数之间的映射关系
  • Express 中的路由分 3 部分组成,分别是请求的类型 、请求的 URL 地址、 处理函数 ,格式如下
APP[METHOD](PATH, HANDLER)
app.get('/', (req, res) => {
  res.send('get request')
})
app.post('/', (req, res) => {
  res.send('post request ')
})

# 路由 DEMO

  • router.js
const express = require('express')
const router = express.Router()
router.get('/username', (req, res) => res.send(`<pre>username request</pre>`))
router.post('/password', (req, res) => res.send(`<pre>password request</pre>`))
module.exports = router
  • index.js
// http://127.0.0.1:8001/api/user
const express = require('express')
const app = express()
// 导入路由模块
const router = require('./router')
// 注册・路由模块  并添加统一访问路径前缀 /api
app.use('/api', router)
// 注意 app.use () 函数 是用来注册全局中间件
app.listen(8001, () => console.log('The server is started successfully'))
Update on Views times

Give me a cup of [coffee]~( ̄▽ ̄)~*

Nico Niconi WeChat Pay

WeChat Pay

Nico Niconi Alipay

Alipay