服务器和Express

1.网络通讯概述

网络通信三大要素: 协议,域名(IP),端口号;

通过ip找到计算机,再通过端口找到应用程序,符合规则就可进行数据传输。
传输协议:规定数据传输的规则,http或https或file;前端目前只接触这三项。
网络通讯的格式; 请求报文/响应报文;
域名或 IP:电子设备(计算机,服务器)在网络中的唯一标识。
localhost代表本机地址; 127.0.0.1代表本机地址;
端口:应用程序在计算机中的唯一标识。065535之间,01023的端口可能被系统占用。
80是 http 用; 443是 https 用;

2.express 介绍

  • Express 是一个第三方模块,用于快速搭建服务器(替代http模块)
  • Express 是一个基于 Node.js 平台,快速、开放、极简的 web 开发框架
  • Express保留了http模块的基本API,使用express的时候,也能使用http的API
    • 使用express的时候,仍然可以使用http模块的方法,比如 res.end()、req.url
  • express还额外封装了一些新方法,能让我们更方便的搭建服务器
  • express提供了中间件功能,其他很多强大的第三方模块都是基于express开发的
  • Express 官网
  • Express 中文文档(非官方)

3.安装 express

项目文件夹中,执行 npm i express@4.17.1。即可下载安装express。

注意:express不能安装在express文件夹中。否则安装失败。

4.使用Express构造Web服务器

使用Express构建Web服务器步骤:

  1. 加载 express 模块

  2. 创建 express 服务器

  3. 开启服务器

  4. 监听浏览器请求并进行处理

// 1.创建项目文件夹:   02_express
// 2.初始化    项目:   npm   init  -y
// 3.安装第三方模块:   npm   i   express@4.17.1// 4.导入
const express = require('express');
// 5.创建实例对象
const app = express();// 启动服务
app.listen(3006, () => {console.log('http://localhost:3006');
})

5.编写接口

// 6.编写接口  -  req.method   req.url
app.get('/api/getbooks', (req, res) => {// 原生 http 模块中req上的属性console.log(req.method, req.url);// 原生 http 模块中res上的方法res.send('获取图书列表成功!');
});
app.post('/api/addbook', (req, res) => {res.send('添加图书成功!');
});

6.响应头设置

// 设置响应状态码
res.status(201);
// 设置其他响应头
res.set({"Content-Type": "application/json"
});

7.请求参数接收

1.请求路径中的参数,根据所在位置不同有两种:查询参数和路由参数;(get/delete常用)

​ 查询参数: req.query
​ 路由参数: req.params

2.请求体参数一种,但是传递参数的类型,常见的有三种;(post/put常用)

​ 请求体参数: req.body;

​ 获取请求体参数需要配置一句话,三种类型对应三种不同的配置方式:
​ app.use( express.urlencode() ); 对应 content-type: application/x-www-form-urlencoded app.use( express.json() ); 对应 content-type: application/json const upload = multer({ dest: ‘uploads/’ }); (需要下载)
​ app.use( upload.single(‘avatar’) ); 对应 multipart/form-data (了解)

服务器和Express配置请求方式及参数接收相关推荐

  1. 2021 Axios 各种请求方式传递参数格式整理

    目录 axios.request(config) axios.get(url[, config]) axios.delete(url[, config]) axios.post(url[, data[ ...

  2. SpringCloud中Feign服务调用请求方式及参数总结

    前言 最近做微服务架构的项目,在用feign来进行服务间的调用.在互调的过程中,难免出现问题,根据错误总结了一下,主要是请求方式的错误和接参数的错误造成的.在此进行一下总结记录.以下通过分为三种情况说 ...

  3. SpringMVC总结三:请求Controller返回视图类型以及请求方式、参数介绍

    视图解析,请求Controller返回的视图类型: @Controller @RequestMapping("/test") public class TestController ...

  4. feign调用多个服务_SpringCloud中Feign服务调用请求方式及参数总结(示例代码)

    前言 最近做微服务架构的项目,在用feign来进行服务间的调用.在互调的过程中,难免出现问题,根据错误总结了一下,主要是请求方式的错误和接参数的错误造成的.在此进行一下总结记录.以下通过分为三种情况说 ...

  5. get 和 post 请求方式 及其参数解析

    一.Get与Post区别   Get和Post都是Http协议的组件,所以底层都是使用tcp链接.Get的请求方式是将http的header和data一并发往服务端,也就是一条tcp数据包发送,这就会 ...

  6. C# WebApi Get请求方式传递实体参数

    我又搞回笃NET啦!java之路真是命运多舛,好事多磨.不过,也许我已经进入无招胜有招,博取众家之长.融会贯通的地步了. 对于WebApi,今天又有了一些新的了解. 话说,Get请求方式,参数会附在U ...

  7. angularjs的$http请求方式

    /*$http常用的几个参数$http服务的设置对象:1.method 字符串 表示发送的请求类型 get post jsonp等等2.url 字符串 绝对或者相对的URL,请求的目标3.params ...

  8. Http中post/get请求参数接收

    1. Http请求报文 Http请求报文示例图如下: ①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE.HEAD.OPTIONS.PUT.TRACE.不过,当前的大多数 ...

  9. Spring MVC框架中关于限制请求方式

    在Spring MVC框架中,@RequestMapping注解的主要作用是配置请求路径,除此以外,还可以配置请求方式,例如: @RequestMapping(value = "/add-n ...

最新文章

  1. centos出现磁盘坏道,怎么检索和修复
  2. Django13-ModelForm中的is_valid及局部钩子、全局钩子源码解析
  3. gentoo使用unicon支持中文
  4. SAP CRM Fiori 应用 my Opportunities 的后台性能分析
  5. C++ 数组在内存中的分配
  6. 第九章 Libgdx内存管理
  7. Linux sse 地址对齐指令,SSE指令:哪些CPU可以执行原子16B内存操作?
  8. 很火的深度学习框架PyTorch怎么用?手把手带你安装配置
  9. kgdb调试内核无法执行断点及kdb-22:Permisson denied
  10. ArcGIS License Server Administrator 10.2 无法启动许可的解决办法
  11. ASP.NETSpring.NETNHibernate最佳实践(七)——第3章人事子系统(4)人事子系统小结...
  12. windows 控制台cmd乱码的解决办法
  13. 沙箱 sandbox
  14. 计算机在高分子材料中的应用软件,计算机技术在高分子材料工程中的应用(10页)-原创力文档...
  15. 《python网络数据采集》读书笔记
  16. 微信小程序实现保存影集和图片到相册
  17. html5密码确认属性,HTML5表单及其验证【html自带属性验证】
  18. 使用FFmepg进行视频转码、视频格式转换、图片提取等!
  19. Deepin/Ubuntu debian系的Linux下更新nvidia显卡驱动(初次安装也可以选择该方案)
  20. 教妹学Java(九):一文搞懂Java中的基本数据类型

热门文章

  1. OmniPlayer Pro macOS 全能影音播放‪器,还支持无线投屏
  2. 台达服务器显示ale02,台达伺服电机50问2012.pdf
  3. C语言 推箱子小游戏 可重玩 可选关 保存记录
  4. 如何编写发明专利说明书
  5. 演讲实录:百度大规模深度学习应用实践和开源AI框架PaddlePaddle
  6. EXCEL 时间按秒递增或递减
  7. PTA-c语言 新胖子公式
  8. 智慧职教云Java题库_智慧职教云课堂Java编码技术题库及答案
  9. 谁是你今生要等的人?
  10. Linux 高并发核心配置