express搭建服务器

本文介绍了如何使用Express搭建服务器,包括安装、处理请求参数、响应方式、中间键的使用,以及提供了一些基本的实战案例。请求参数分为GET和POST,GET参数在URL中,而POST参数可能在query、params或请求体中。响应方式包括res.end()、res.send()、res.json()等。中间键用于扩展功能和预处理请求,需注意避免在中间键中过早返回数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装

npm init
npm i express --save

请求参数

  • method: 请求方法
  • url: 请求地址
  • data: 请求参数

get请求参数:

  • query: url? + query参数 —> 键值对的形式,多个键值对使用&拼接
  • params:
    1. 注册路由需要声明占位符
    2. 请求的时候需要填写实例的参数数据

post请求参数:

  • query
  • params
  • 请求体参数:
    1. 参数在请求体中
    2. 获取: req.body
    3. 请求体参数携带的数据量更大相比get方法的query方式
    4. 数据放在请求体中不是以明文的方式在url中体现,比get请求更加安全

响应方式

返回的方式: res.< method>

  • res.end() 直接返回,
  • res.send() 根据返回的数据自动作出判断处理,再返回, 如: 如果返回的数据中是中文的内容,send会设置content-type:text/html;charset=utf-8
  • res.json() 直接返回, json数据
  • res.set() 设置响应头
  • res.cookie() 设置cookie
  • res.status() 设置响应状态码

中间键

  1. 本质:函数
  2. 作用:
  1. 添加一些扩展功能
  2. 处理请求头,响应数据,针对请求做一些预处理的工作
  3. 调用下一个中间键

使用中间键
app.use(中间键函数);
app.use()直接使用中间键函数,可以接收到任何方法,任何路径的请求

注意点:
1、如果有连续的多个中间键函数被使用,不要在靠前的中间键函数中返回数据,容易导致后续中间键中(后续中间键中也返回数据)报错
2、如果中间键和请求的方法共存的情况下,先匹配谁,就执行谁
3、 get, post请求的回调也是中间键函数

基本案例

const express = require('express');
const app = express();

// express.static() 向外暴露静态资源
// express.json() 处理post请求参数  application/json
// express.urlencoded() 处理post请求参数 application/x-www-form-urlencoded

// 思考: 使用的express.json()返回值,返回值是一个函数,而且函数工作完自动调用了next方法
app.use(express.urlencoded({extended: true}));
app.use(express.json());
// __dirname 绝对根路径
app.use(express.static(path.resolve(__dirname, 'public')))

// 第三方中间键 全局使用
// app.use(multipartMiddleware)

// 局部使用中间键: multipartMiddleware 必须放置在请求回调的前边
app.post('/login', multipartMiddleware, (request, response) => {
  console.log('body请求体参数; ', request.body);
  response.send('服务器返回的数据')
});



// 注册路由
// requ est(请求信息对象 - req), response(响应信息对象 - res)
app.get('/login/:index', (req, res) => {
  console.log('1111');
  console.log('query参数: ', req.query);
  console.log('params参数: ',req.params);
  // 设置响应头字段
  res.set({
    'content-type': 'text/html;charset=utf-8'
  })
  // 服务器返回数据的时候默认的编码格式是utf-8
  res.status(200).end('服务器返回的数据');
});


app.post('/register/:id', (req, res) => {
  console.log('2222');
  console.log('post query参数: ',  req.query);
  console.log('post params参数: ', req.params);
  console.log('post 请求体参数: ', req.body);
  res.end('register success data');
});

app.listen('3001', (err) => {
  if(err){
    console.log('服务器启动失败');
    console.log(err);
  }else {
    console.log('服务器启动成功');
    console.log('服务器地址:http://localhost:3001');
  }
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值