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")
})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/82296.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/82296.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/82296.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp实现的简约美观的票据、车票、飞机票模板

采用 uniapp 实现的一款简约美观的票据模板&#xff0c;纯CSS、HTML实现&#xff0c;用户完全可根据自身需求进行更改、扩展&#xff1b;支持web、H5、微信小程序&#xff08;其他小程序请自行测试&#xff09;&#xff0c; 可到插件市场下载尝试&#xff1a; https://ext.dclo…

esp32+IDF V5.1.1版本编译freertos报错

error: portTICK_RATE_MS undeclared (first use in this function); did you mean portTICK_PERIOD_MS 解决方法: 使用命令 idf.py menuconfig 打开配置界面配置freeRtos 使能configENABLE_BACKWARD_COMPATIBLITY

vue 水印组件

Watermark.vue <script setup lang"ts"> import { ref, onMounted, onUnmounted, watch } from vue;interface Props {text?: string;fontSize?: number;color?: string;rotate?: number;zIndex?: number;gap?: number; }const props withDefaults(def…

hbuilder中h5转为小程序提交发布审核

【注意】 [HBuilder] 11:59:15.179 此应用 DCloud appid 为 __UNI__9F9CC77 &#xff0c;您不是这个应用的项目成员。1、联系这个应用的所有者&#xff0c;请求加入项目成员&#xff08;https://dev.dcloud.net.cn "成员管理"-"添加项目成员"&#xff09;…

QT之INI、JSON、XML处理

文章目录 INI文件处理写配置文件读配置文件 JSON 文件处理写入JSON读取JSON XML文件处理写XML文件读XML文件 INI文件处理 首先得引入QSettings QSettings 是用来存储和读取应用程序设置的一个类 #include "wrinifile.h"#include <QSettings> #include <QtD…

道德经总结

道德经 《道德经》是中国古代伟大哲学家老子所著&#xff0c;全书约五千字&#xff0c;共81章&#xff0c;分为“道经”&#xff08;1–37章&#xff09;和“德经”&#xff08;38–81章&#xff09;两部分。 《道德经》是一部融合哲学、政治、人生智慧于一体的经典著作。它提…

行为型:迭代器模式

目录 1、核心思想 2、实现方式 2.1 模式结构 2.2 实现案例 3、优缺点分析 4、适用场景 1、核心思想 目的&#xff1a;将遍历逻辑与数据存储结构解耦 概念&#xff1a;提供一种机制来按顺序访问集合中的各元素&#xff0c;而不需要知道集合内部的构造 举例&#xff1a;…

人脸识别技术合规备案最新政策详解

《人脸识别技术应用安全管理办法》将于2025年6月1日正式实施&#xff0c;该办法从技术应用、个人信息保护、技术替代、监管体系四方面构建了人脸识别技术的治理框架&#xff0c;旨在平衡技术发展与安全风险。 一、明确技术应用的边界 公共场所使用限制&#xff1a;仅在“维护公…

如何把vue项目部署在nginx上

1&#xff1a;在vscode中把vue项目打包会出现dist文件夹 按照图示内容即可把vue项目部署在nginx上

奇好 PDF安全加密 + 自由拆分合并批量处理 OCR 识别

各位办公小能手们&#xff0c;你们好呀&#xff01;今天我要给大家介绍一款超厉害的软件——奇好PDF。它就像是一个PDF文档处理的超级大管家&#xff0c;啥功能都有&#xff0c;格式转换、编辑、提取、安全保护这些统统不在话下&#xff0c;不管是办公、学习&#xff0c;还是设…

Docker-Harbor 私有镜像仓库使用指南

1.用户管理 为项目创建专用用户&#xff0c;并配置权限&#xff0c;确保该用户能够顺利推送镜像到 Harbor 仓库&#xff0c;确保镜像推送操作的安全性和便捷性。 创建完成后可以根据需要选择是否设置为管理员 角色 权限描述 适用场景 系统管理员 拥有系统的完全控制权限 运维…

HomeAssistant开源的智能家居docker快速部署实践笔记(CentOS7)

1. SGCC_Electricity 应用介绍 SGCC_Electricity 是一个用于将国家电网&#xff08;State Grid Corporation of China&#xff0c;简称 SGCC&#xff09;的电费和用电量数据接入 Home Assistant 的自定义集成组件。通过该应用&#xff0c;用户可以实时追踪家庭用电量情况&…

maven 3.0多线程编译提高编译速度

mvn package 默认只使用 单线程 来执行构建生命周期&#xff08;即顺序地构建每一个模块&#xff09;。 如果你使用的是多模块项目&#xff0c;Maven 从 3.0 开始提供了**并行构建&#xff08;parallel build&#xff09;**的能力&#xff0c;但它不是默认开启的。 如何启用多…

python模块管理环境变量

概要 在 Python 应用中&#xff0c;为了将配置信息与代码分离、增强安全性并支持多环境&#xff08;开发、测试、生产&#xff09;运行&#xff0c;使用专门的模块来管理环境变量是最佳实践。常见工具包括&#xff1a; 标准库 os.environ&#xff1a;直接读取操作系统环境变量…

K8s 集群运行时:从 Docker 升级到 Containerd

一、背景&#xff1a;Kubernetes容器运行时演进史 自2020年Kubernetes 1.20版本宣布弃用Docker作为默认容器运行时以来&#xff0c;容器技术生态经历了重大变革。作为CNCF毕业项目&#xff0c;Containerd凭借其轻量化架构、原生CRI支持和卓越性能表现&#xff0c;逐渐成为云原生…

30-消息队列

一、消息队列概述 队列又称消息队列&#xff0c;是一种常用于任务间通信的数据结构&#xff0c;队列可以在任务与任务间、 中断和任务间传递信息&#xff0c;实现了任务接收来自其他任务或中断的不固定长度的消息&#xff0c;任务能够从队列里面读取消息&#xff0c;当队列中的…

AI Agent开发第74课-解构AI伪需求的魔幻现实主义

开篇 🚀在之前的系列中我们狂炫了AI Agent的各种高端操作(向量数据库联动、多模态感知、动态工作流等…),仿佛每个程序员都能用LLM魔法点石成金✨。 但今天咱们要泼一盆透心凉的冷水——当企业把AI当成万能胶水强行粘合所有需求时,连电风扇都能被玩出量子纠缠的魔幻现实…

低代码AI开发新趋势:Dify平台化开发实战

在人工智能快速发展的今天&#xff0c;AI应用的开发方式也在不断演变。从传统的手写代码到如今的低代码甚至零代码开发&#xff0c;技术的进步让更多的非专业开发者也能轻松上手。本文将带你走进Dify平台化开发的世界&#xff0c;探索如何通过这一强大的低代码AI开发平台&#…

开发积累总结

export default 和export const 均用于从模块导出函数、对象或原始值&#xff0c;区别在于&#xff1a; export default&#xff1a;一个文件中只能有一个&#xff0c;为默认导出&#xff0c;在引用时指定名字。 export const&#xff1a;一个文件中有多个&#xff0c;为命名…

【TCP/IP协议族详解】

目录 第1层 链路/网络接口层—帧&#xff08;Frame&#xff09; 1. 链路层功能 2. 常见协议 2.1. ARP&#xff08;地址解析协议&#xff09; 3. 常见设备 第2层 网络层—数据包&#xff08;Packet&#xff09; 1. 网络层功能 2. 常见协议 2.1. ICMP&#xff08;互联网…