express搭建服务器

安装npm initnpm i express --save请求参数method: 请求方法url: 请求地址data: 请求参数get请求参数:query: url? + query参数 —> 键值对的形式,多个键值对使用&拼接params:注册路由需要声明占位符请求的时候需要填写实例的参数数据post请求参数:queryparams请求体参数:参数在请求体中获取: req.body请求体参数携带的数据量更大相比get方法的query方式
摘要由CSDN通过智能技术生成

安装

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');
  }
})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值