当前位置: 首页 > news >正文

day24Node-node的Web框架Express

1. Express 基础

1.1 什么是Express 

node的web框架有Express 和 Koa。常用Express 。

Express 是一个基于 Node.js 的快速、极简的 Web 应用框架,用于构建 服务器端应用(如网站后端、RESTful API 等)。它是 Node.js 生态中最流行的框架之一,以轻量、灵活和易用著称。 

npm install express --save
或者
yarn add express -S

Koa 是由 Express 背后的团队设计的一个新的 Web 框架,旨在成为 Web 应用和 API 的更小、更具表现力和更强大的基础。 通过利用异步函数,Koa 允许你放弃回调并大大提高错误处理能力。 Koa 的核心中没有捆绑任何中间件,它提供了一套优雅的方法,使编写服务器变得快速而愉快。 

1.2 Express特色和项目创建

1.2.1 Express特色

  • Web 应用:Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。
  • API:丰富的 HTTP 快捷方法和任意排列组合的 Connect 中间件,让你创建健壮、友好的 API 变得既快速又简单。
  • 性能:Express 不对 Node.js 已有的特性进行二次抽象,我们只是在它之上扩展了 Web 应用所需的基本功能。

1.2.2 项目创建

服务端

1.在项目文件下创建一个新文件exprss1,在该文件下执行npm init -y 初始化。

2. 编写package.json文件。执行npm i 下载依赖

{"name": "express1","version": "1.0.0","description": "","main": "index.js","scripts": {"start": "PORT=4000 nodemon"},"keywords": [],"author": "","license": "ISC","dependencies": {"express":"^4.21.0"},"devDependencies": {"nodemon":"^3.1.4"}
}

3. 新建一个入口文件index.js 。在执行npm start 开启项目

4. 编写入口文件index.js。

const express=require("express");
const app=express();...
app.listen(process.env.PORT);简单的服务已经搭建成功

5. 下面的内容在该项目中进行讲解。 

1.3 express的通信应用

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

 1.3.1 app.get

app.get:主要用于前后端get通信方式处理。

var express=require("express");
var app=express();app.get("/a",function(req,res){res.send("hello")
})
app.listen(4001);

案例1:编写 express1文件下的index.js 

使用浏览器直接访问服务端 

 

1.3.2 解决express的通信的跨域问题

客户端

1. 在项目文件下新建一个clint客户端文件。

2. 在clint客户端文件打开集成终端中执行 npm i axios

3. 在clint客户端文件新建一个index.html

4. 在index.html文件中引入axios,并编写index.html。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title></head>
<body><script type="module">1. 引入axiosimport axios from "./node_modules/axios/dist/esm/axios.js"2.访问服务器/a路劲,携带参数a=1,b=2axios.get("http://localhost:4000/a?a=1&b=2").then((res)=>{console.log(res);})</script>
</body>
</html>

服务端

 express1文件下的index.js 保持不变。

客户端直接访问服务端 涉及跨域问题会报错

解决方法在服务端express1的package.json文件中编写添加cors跨域依赖。执行npm i 下载依赖。再次执行npm start开启项目。

修改express1的package.json文件:

{"name": "express1","version": "1.0.0","description": "","main": "index.js","scripts": {"start": "PORT=4000 nodemon"},"keywords": [],"author": "","license": "ISC","dependencies": {"express":"^4.21.0",添加依赖"cors":"^2.8.5"},"devDependencies": {"nodemon":"^3.1.4"}
}

修改服务端express1文件下的index.js ,引入cors模块。再次使用客户端访问服务端。

const express=require("express");
const app=express();
const cors=require("cors");一次性解决所有跨域,允许所有域名
app.use(cors());app.get("/a",function(req,res){服务端解析客户端url的方法1:console.log(req.url); // a?a=1&b=2服务端解析客户端url的方法2express 自动解析了客户端url带来的search部分参数console.log(req.query); // {a:1,b:2}服务端解析客户端url的方法3:路径,不带参数console.log(req.path); // /a服务端向客户端发送数据的方法:express 有send方法可以发送任何类型的数据,都会自动转换//res.send("aaa");res.send({a:1,b:2})})app.listen(process.env.PORT);

服务端解析客户端的url: 

服务端向客户端发送数据:

 1.3.3 app.post

app.post: 主要用于前后端post通信方式处理。

var express=require("express");
var app=express();app.post("/a",function(req,res){res.send("hello")
})

相关文章:

  • Stable Diffusion底模对应的VAE推荐
  • 深度学习优化器相关问题
  • 一些Dify聊天系统组件流程图架构图
  • 单片机——实现交通信号灯管理
  • 学习STC51单片机13(芯片为STC89C52RC)
  • leetcode 61. Rotate List和86. Partition List
  • 搭建自己的语音对话系统:开源 S2S 流水线深度解析与实战
  • 实验-设计一个应用系统(计算机组成原理)
  • CentOS停止维护了,解决yum不能安装软件的问题
  • windows bat 在目录下(包括子目录)搜索批量指定文件名称复制到另一个文件夹内
  • QT聊天项目DAY12
  • Git企业级——进阶
  • 达梦数据库-学习-21-C 外部函数
  • 怎么判断一个Android APP使用了Cordova这个跨端框架
  • ubuntu设置开机不输密码笔记
  • 《STL--- vector的使用及其底层实现》
  • 会话管理有哪些
  • 【三维重建】【3DGS系列】【深度学习】3DGS的理论基础知识之3D高斯椭球
  • 【三维重建】【3DGS系列】【深度学习】3DGS的理论基础知识之协方差矩阵控制椭球
  • JavaScript篇:解密ES6的“藏宝图“:Set和Map的奇妙冒险
  • 哪个网站做任务赚钱的/seo网站搜索优化
  • 网站组织结构图/适合发表个人文章的平台
  • 如何做后台网站增删改/济南网站推广优化
  • 申请学校网站建设申请书/故事式软文范例100字
  • 镇江做网站的/杭州seo排名费用
  • 南通优化网站费用/下载百度到桌面上