DAPP开发【10】express.js的使用

Express.js 是一种流行、轻量级的开源 Web 应用程序框架,用于开发基于 Node.js 的服务器端 Web 应用程序。它提供了强大的功能集,适用于 Web 和移动应用程序。Express.js 旨在支持单页、多页和混合式 Web 应用程序的开发。Express.js 提供了广泛的功能,包括路由、中间件、模板等,用于创建 Web 应用程序。它易于学习,非常适合构建 RESTful API、Web 应用程序和 Web 服务。Express.js 广泛用于各种行业的 Web 应用程序开发,包括医疗保健、电子商务、金融和社交媒体等。

node.js可以用来写后端,使用express.js框架

1·新建文件夹

mkdir expressLearn 

2·进入文件夹

cd expressLearn 

3·初始化

npm init -y

生成package.josn
小技巧
package.josn中有
在这里插入图片描述
npm run test
在这里插入图片描述
npm run deploy = npx hardhat deploy --network rinkeby

4·安装express(局部安装,安装项目下)

npm install express --save

npm install express --save 命令会将 express 模块安装到当前项目的本地 node_modules 目录中,并将其添加到项目的 dependencies 中。这是一种局部安装方式,只有在当前项目中才能使用安装的模块。

如果要全局安装 express,可以使用 npm install -g express 命令。全局安装会将模块安装到全局 node_modules 目录中,以便在命令行中使用 express 命令创建应用程序。但是,在实际开发中,全局安装并不是推荐的做法,因为它可能导致版本冲突和依赖问题。
5·新建app.js文件

const express = require('express')
const app = express()app.get('/', function (req, res) {res.send('Hello World')
})app.listen(3000)

这段代码使用 Node.js 中的 Express 框架创建了一个简单的 HTTP 服务器。让我来解释一下代码的每个部分:

const express = require('express'): 这一行引入了 Express 框架,将其赋值给变量 express。const app = express(): 创建了一个 Express 应用程序实例,并将其赋值给变量 app。通过调用 express() 函数,我们创建了一个 Express 应用程序。app.get('/', function (req, res) { ... }): 这一行指定了一个针对根路径 / 的 HTTP GET 请求的处理函数。当用户在浏览器中访问服务器的根路径时,Express 将执行这个处理函数。res.send('Hello World'): 在处理函数中,我们使用 res.send() 方法向客户端发送了一个简单的字符串响应 "Hello World"。app.listen(3000): 最后一行启动了一个 HTTP 服务器,监听在端口 3000 上。这意味着当你在浏览器中输入 http://localhost:3000 时,Express 应用程序将会响应请求并发送 "Hello World" 到浏览器。

6·命令行运行

node app.js

在这里插入图片描述

添加功能

const express = require('express')
const app = express()app.get('/', function (req, res) {res.send('Hello World')
})const products = [{"name":"Television","price": 2000,"brand":"Xiaomi"},{"name":"Laptop","price":5000,"brand":"Lenovo"}
]app.get('/products/:brand', (req, res)=> {const brand = req.params.brandconsole.log(brand)// const filteredProducts = products.filter( (product)=>{//     return product.brand === brand// })const filteredProducts = products.filter(product=>product.brand === brand)res.send(filteredProducts)
})
const port = 3000
app.listen(port,()=>{console.log(`Server is running on ${port}...`)
})

命令行运行

node app.js

http://localhost:3000/products/Xiaomi

中间件
中间件是一种软件,用于在不同的应用程序之间传递数据和消息,以便它们可以相互通信。中间件通常用于实现不同的应用程序之间的集成,以便它们可以共享数据和服务。中间件可以作为基础设施和应用程序之间的桥梁,从而提高应用程序的互操作性和可扩展性。常见的中间件包括消息队列、Web服务器、RPC框架、缓存系统等。


app.use(requestUrlLogger);app.get('/', function (req, res) {res.send('Hello World')
})

上传数据

const express = require('express')
const app = express()const requestUrlLogger = (req, res, next)=>{console.log("url is :",req.url);next();
}app.use(requestUrlLogger);
app.use(express.json())//post获取数据时使用app.get('/', function (req, res) {res.send('Hello World')
})const products = [{"name":"Television","price": 2000,"brand":"Xiaomi"},{"name":"Laptop","price":5000,"brand":"Lenovo"}
]app.get('/products/:brand', (req, res)=> {const brand = req.params.brand// const filteredProducts = products.filter( (product)=>{//     return product.brand === brand// })const filteredProducts = products.filter(product=>product.brand === brand)res.send(filteredProducts)
})const port = 3000
app.listen(port,()=>{console.log(`Server is running on ${port}...`)
})app.post('/products',(req,res)=>{const name = req.body.name;const price = req.body.price;const brand = req.body.brand;products.push({name,price,brand});//键:值,名字一样可以只写一个res.json({"message":"New product created","data":products})
})

postman和apipost
Postman和APIpost都是API测试工具,具有类似的功能,但使用方式和界面略有不同。

Postman是一款常用的API调试工具,可以快速构建、测试和文档化API。它支持多种HTTP请求类型,例如GET、POST、PUT、DELETE等,还可以设置请求头、请求参数和请求体等。Postman还可以对API进行自动化测试和集成测试,支持断言、数据驱动和测试报告等功能。同时,Postman还提供了丰富的插件和扩展,可以方便地集成到开发工作流中。

APIpost是一款在线API测试工具,基于Web界面操作,无需安装任何软件。它可以通过URL、HEAD、GET、POST等多种方式发送HTTP请求,并可以设置请求头、请求参数和请求体等。APIpost还支持Mock API,可以根据API文档自动生成伪数据,并支持API文档自动生成和分享。APIpost还提供了多种主题和语言版本,可以满足不同用户的需求。

总的来说,Postman更适合用于本地开发和测试,而APIpost则更适合用于在线协作和共享。使用哪一款工具,可以根据自己的实际需求来选择。Postman和APIpost都是API测试工具,具有类似的功能,但使用方式和界面略有不同。

Postman是一款常用的API调试工具,可以快速构建、测试和文档化API。它支持多种HTTP请求类型,例如GET、POST、PUT、DELETE等,还可以设置请求头、请求参数和请求体等。Postman还可以对API进行自动化测试和集成测试,支持断言、数据驱动和测试报告等功能。同时,Postman还提供了丰富的插件和扩展,可以方便地集成到开发工作流中。

APIpost是一款在线API测试工具,基于Web界面操作,无需安装任何软件。它可以通过URL、HEAD、GET、POST等多种方式发送HTTP请求,并可以设置请求头、请求参数和请求体等。APIpost还支持Mock API,可以根据API文档自动生成伪数据,并支持API文档自动生成和分享。APIpost还提供了多种主题和语言版本,可以满足不同用户的需求。

总的来说,Postman更适合用于本地开发和测试,而APIpost则更适合用于在线协作和共享。使用哪一款工具,可以根据自己的实际需求来选择。

Postman
在这里插入图片描述

模版引擎
pug和ejs

Pug (以前称为Jade) 是一种模板引擎,它使用缩进和简洁的语法来生成HTML。它允许使用变量、逻辑语句、迭代器、函数等功能,使得编写HTML模板更加方便快捷。

EJS (Embedded JavaScript) 是一种JavaScript模板引擎,它充分利用了JavaScript的强大功能,允许使用变量、逻辑语句、函数等功能来生成HTML。相比于Pug,EJS语法更加接近HTML,也更加灵活。

两种模板引擎都有各自的优点和适用场景。Pug适合于需要频繁更新HTML内容的大型应用程序,它可以减少HTML模板的代码量,使得维护更加便捷。而EJS则更适合于只需要做少量更新的应用程序,因为它的语法更加接近HTML,更容易阅读和理解。

https://pugjs.org/
在这里插入图片描述
1·安装pug
在这里插入图片描述
2·app.js
在这里插入图片描述
这是在 Node.js 应用程序中设置 Pug 模板引擎的语句。

第一行代码 app.set('view engine','pug') 指定了应用程序默认使用的模板引擎为 Pug。这样,在 res.render 中调用视图文件时,应用程序会自动使用 Pug 引擎来解析模板。

第二行代码 app.set('views','./views') 指定了存放视图文件的文件夹,这里是 ./views,也就是应用程序的根目录下的 views 文件夹。这个文件夹下的文件会被视为视图文件,可以通过 res.render 方法来渲染。这是在 Node.js 应用程序中设置 Pug 模板引擎的语句。

第一行代码 app.set('view engine','pug') 指定了应用程序默认使用的模板引擎为 Pug。这样,在 res.render 中调用视图文件时,应用程序会自动使用 Pug 引擎来解析模板。

第二行代码 app.set('views','./views') 指定了存放视图文件的文件夹,这里是 ./views,也就是应用程序的根目录下的 views 文件夹。这个文件夹下的文件会被视为视图文件,可以通过 res.render 方法来渲染。这是在 Node.js 应用程序中设置 Pug 模板引擎的语句。

第一行代码 app.set('view engine','pug') 指定了应用程序默认使用的模板引擎为 Pug。这样,在 res.render 中调用视图文件时,应用程序会自动使用 Pug 引擎来解析模板。

第二行代码 app.set('views','./views') 指定了存放视图文件的文件夹,这里是 ./views,也就是应用程序的根目录下的 views 文件夹。这个文件夹下的文件会被视为视图文件,可以通过 res.render 方法来渲染。

3·新建文件夹
views并在下面新建home.pug
在这里插入图片描述

3·home.js
在这里插入图片描述
4·app.js
在这里插入图片描述
5·node app.js
在这里插入图片描述

6·nodemon的使用
nodemon是一个Node.js开发的工具,可以帮助Node.js应用程序自动重新启动。它可以监视您的代码更改,并在更改发生时自动重启应用程序。

以下是使用nodemon的步骤:

  1. 全局安装nodemon:

    npm install -g nodemon
    
  2. 在项目目录运行nodemon:

    nodemon app.js
    

    其中,app.js是您的Node.js应用程序的入口文件。

  3. 现在,nodemon将监视您的代码更改。每当您修改代码并保存时,nodemon将自动重新启动应用程序。

    您还可以在运行nodemon时通过添加参数来添加其他配置选项,例如:

    nodemon --watch controllers --exec node app.js
    

    这将监视controllers文件夹的更改并在更改发生时重新启动应用程序。

希望这可以帮助您开始使用nodemon!nodemon是一个Node.js开发的工具,可以帮助Node.js应用程序自动重新启动。它可以监视您的代码更改,并在更改发生时自动重启应用程序。

以下是使用nodemon的步骤:

  1. 全局安装nodemon:

    npm install -g nodemon
    
  2. 在项目目录运行nodemon:

    nodemon app.js
    

    其中,app.js是您的Node.js应用程序的入口文件。

  3. 现在,nodemon将监视您的代码更改。每当您修改代码并保存时,nodemon将自动重新启动应用程序。

    您还可以在运行nodemon时通过添加参数来添加其他配置选项,例如:

    nodemon --watch controllers --exec node app.js
    

    这将监视controllers文件夹的更改并在更改发生时重新启动应用程序。

希望这可以帮助您开始使用nodemon!nodemon是一个Node.js开发的工具,可以帮助Node.js应用程序自动重新启动。它可以监视您的代码更改,并在更改发生时自动重启应用程序。

以下是使用nodemon的步骤:

  1. 全局安装nodemon:

    npm install -g nodemon
    
  2. 在项目目录运行nodemon:

    nodemon app.js
    

    其中,app.js是您的Node.js应用程序的入口文件。

  3. 现在,nodemon将监视您的代码更改。每当您修改代码并保存时,nodemon将自动重新启动应用程序。

    您还可以在运行nodemon时通过添加参数来添加其他配置选项,例如:

    nodemon --watch controllers --exec node app.js
    

    这将监视controllers文件夹的更改并在更改发生时重新启动应用程序。

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

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

相关文章

Linux软件包管理器yum

yum—Linux应用商店 前言Linux的软件安装1. 源代码安装2. rpm安装使用rpm安装升级或者更新.rpm软件包卸载指定的.rpm软件包查询已安装的.rpm软件包优缺点 3. yum安装(推荐)yum源使用yum命令(检测是否有网:ping指令)优缺…

Nginx的反向代理与负载均衡

概念介绍 1). 正向代理 正向代理服务器是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。 …

51单片机的硬件组成的功能以及40个引脚的功能

AT89S51单片机的硬件组成 本文主要涉及AT89S51单片机的硬件结构,与89C51还是存在一定的区别文中有说明,介绍了单片机的各硬件的基本功能,并详细介绍了单片机40个引脚的功能 文章目录 AT89S51单片机的硬件组成一、 AT89S51单片机的硬件组成1.1…

Qt开发学习笔记01

设置窗口背景图 在 .h 文件中添加引用和方法 #include <QPainter> #include <QPixmap> void paintEvent(QPaintEvent *);.cpp 文件中实现 paintEvent void sur_dev::paintEvent(QPaintEvent *ev) {QPainter painter(this);QPixmap pix;pix.load(":/image/bj01…

openeuler安装Google浏览器

1.安装Google浏览器 下载安装文件 wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm开始安装 yum install -y google-chrome-stable_current_x86_64.rpm2.安装todesk软件 https://www.todesk.com/linux.html 安装命令&#xff1a; sudo r…

计算机网络实用工具之nbtscan

简介 nbscan是一个用于扫描IP网络的NetBIOS名称信息的程序。它向提供范围内的每个地址发送NetBIOS状态查询&#xff0c;并以人类可读的形式列出接收到的信息。对于每个响应的主机&#xff0c;它列出了IP地址、NetBIOS计算机名、登录用户名和MAC地址。 对于安全检查、网络发现…

六要素超声波气象站气象监测小能手

随着科技的发展&#xff0c;人类对天气的掌控越来越强。六要素超声波气象站成为了现代气象预测的重要工具。本文将介绍这种气象站的特点、功能和应用&#xff0c;以及它如何改变我们对天气的预测和应对方式。 一、六要素超声波气象站简介 WX-CSQX6 六要素超声波气象站是一种集…

100G光模块的选购技巧——帮助您节省数据中心成本

数据中心在确保信息的即时可用性和访问性方面扮演着至关重要的角色。随着数据呈指数级增长&#xff0c;数据中心运营商一直在积极寻求优化其基础设施和降低成本的有效途径。在数据中心这个复杂生态系统中&#xff0c;100G光模块是一个不可或缺的部分&#xff0c;它对于实现高速…

SpringBoot3-集成mybatis

1、pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.…

小航助学题库白名单竞赛考级蓝桥杯等考scratch(16级)(含题库教师学生账号)

需要在线模拟训练的题库账号请点击 小航助学编程在线模拟试卷系统&#xff08;含题库答题软件账号&#xff09; 需要在线模拟训练的题库账号请点击 小航助学编程在线模拟试卷系统&#xff08;含题库答题软件账号&#xff09;

2022年第十一届数学建模国际赛小美赛B题序列的遗传过程解题全过程文档及程序

2022年第十一届数学建模国际赛小美赛 B题 序列的遗传过程 原题再现&#xff1a; 序列同源性是指DNA、RNA或蛋白质序列之间的生物同源性&#xff0c;根据生命进化史中的共同祖先定义[1]。DNA、RNA或蛋白质之间的同源性通常根据它们的核苷酸或氨基酸序列相似性来推断。显著的相…

【C++11(二)】lambda表达式以及function包装器

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:C从入门到精通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习C   &#x1f51d;&#x1f51d; C11 1. 前言2. lambda表达式的提出3. lambda表达…

Python之html2text,清晰解读HTML内容!

更多Python学习内容&#xff1a;ipengtao.com 大家好&#xff0c;我是彭涛&#xff0c;今天为大家分享 Python之html2text&#xff0c;清晰解读HTML内容&#xff0c;全文3900字&#xff0c;阅读大约10分钟。 HTML是Web开发中常见的标记语言&#xff0c;但有时我们需要将HTML内容…

数据结构算法-归并排序

引言 小明和小森是超市的货架管理人员&#xff0c;他们每天都要确保货架上的商品摆放整齐、有序。一天&#xff0c;他们发现一个货架上的商品有些混乱&#xff0c;需要尽快进行补货。由于该货架上的商品种类繁多&#xff0c;不同种类的商品之间还要考虑价格、销量等因素&#…

Volumetric Lights 2 HDRP

高清晰度渲染管道,包括先进的新功能,如半透明阴影图和直接灯光投射加上许多改进。 插件是一个快速,灵活和伟大的前瞻性光散射解决方案的高清晰度渲染管道。只需点击几下,即可改善场景中的照明视觉效果。 兼容: 点光源 聚光灯 碟形灯 矩形灯 通过覆盖摄像机周围大面积区域的…

算法通关村第二关—K个一组反转(黄金)

K个一组翻转链表 题目介绍 LeetCode25.给你一个链表&#xff0c;每k个节点一组进行翻转&#xff0c;请你返回翻转后的链表。k是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总数不是k的整数倍&#xff0c;那么请将最后剩余的节点保持原有顺序。进阶&#xff1…

Android Init系统:引领设备启动的先锋

Android Init系统&#xff1a;引领设备启动的先锋 引言 Init系统是一个操作系统启动的必要组件&#xff0c;负责在启动时初始化所有系统资源、服务和应用程序。在Android设备中&#xff0c;Init系统起到了至关重要的作用&#xff0c;它是启动过程中的第一个进程&#xff0c;负…

题目:谈判(蓝桥OJ 545)

题目描述&#xff1a; 解题思路&#xff1a; 本题采用贪心的思想&#xff0c;与蓝桥的合并果子题思路一样。可以使用优先对列&#xff0c;输入进去后自动排序。将两个最小的合并再放入对列中&#xff0c;并将值加入到ans&#xff0c;最终结果即ans。如下图&#xff1a;xy为4&a…

kyuubi整合flink yarn session mode

目录 概述配置flink 配置kyuubi 配置kyuubi-defaults.confkyuubi-env.shhive 验证启动kyuubibeeline 连接使用hive catlogsql测试 结束 概述 flink 版本 1.17.1、kyuubi 1.8.0、hive 3.1.3、paimon 0.5 整合过程中&#xff0c;需要注意对应的版本。 注意以上版本 配置 ky…

JavaScript面向对象编程的奥秘揭秘:掌握核心概念与设计模式

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;JavaScript篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来JavaScript篇专栏内容:JavaScript-面向对象 目录 什么是面向对象&#xff1f; 类与对象的主要区别 创建…