express再度复习,小白篇

news2025/1/25 4:41:14

js----后端编程,Express框架,npm包管理工具,- es6模块化,使用express创建web应用,路由拆分,中间件 , 热更新,脚手架_阿 尭的博客-CSDN博客之前学习的时候整理的一篇草率博客,复习的时候混忘了。今天再重新学习一下express吧!

Express - 基于 Node.js 平台的 web 应用开发框架 - Express 中文文档 | Express 中文网

我们要知道,express是一个基于node.js的简易的开发框架

关于express到底是如何使用的呢?

1.新建一个文件夹然后打开终端

 2.在终端输入npm init -y 会自动生成,否则会自己手动输入一些信息。

3.输入npm install express

会生成一个node_modules文件 

 4.新建立一个文件,app.js

 在app.js中输入

// 引入express
const express=require('express')
// 创建实例
const app=express()
// 创建一个路由 如果没有/hello,直接在地址栏输入locahost:3000可以访问
app.get('/hello',(req,res)=>{
    res.send('这是我的第一个后端服务器')
})

app.listen(3000,()=>console.log('监听3000端口,服务成功'))

 此时我们在终端输入node app.js可以看到服务成功

在浏览器的地址栏输入http://localhost:3000/会显示res.send发送的内容。

路由拆分:说白了就是创建一个路由来让我们复杂的代码看起来有条理些,当然在这里看不出来,因为是写的小例子。另外这里还用到了模块的暴露与引入

// 引入express
const express=require('express')

// 引入user模块
const{useRoute}=require('./route/user.js')
const{productRoute}=require('./route/product.js')
// 创建实例
const app=express()



// 集成路由
app.use('/user',useRoute)
app.use('shop',productRoute)

app.listen(3000,()=>console.log('监听3000端口,服务成功'))

 user.js代码如下:

// 引入express
const express=require('express')

// 创建一个路由对象,专门处理用户模块接口
const useRoute=express.Router()

useRoute.get('/',(req,res)=>{
    res.send('用户模块')
})
useRoute.post('/sign',(req,res)=>{
    res.send('注册模块')
})
// 登录
useRoute.get('/login',(req,res)=>{
    res.send('登录接口')
})
// 后端暴露
module.exports={useRoute}

 这是中规中矩的路由拆分的写法,1.const user=express.Router()   2.user.写接口 3.app.use('/自定义地址',我们自己取的user) 就完成了

特地要注意一下,const user=express.Router()      一定要加括号!!!

 

 中间件:Express中间件,中间件其实就是Express提供的一堆方法,可以接收客户端发来的请求,可以对请求做出响应,也可以将请求继续交给下一个中间件继续处理。

 

中间件函数的原型如下:

function (req, res, next)
第一个参数是"Request对象req。
第二个参数是"Response对象res。
第三个则是用来驱动中间件调用链的函数next,如果你想让后面的中间件继续处理请求,就需要调用next方法。

给某个路径应用中间件函数的典型调用是这样的:
app.use('/abcd', function (req,res, next) {
   console.log(req.baseUrl);
   next();
})

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

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

相关文章

【强化学习基础】强化学习的基本概念:状态、动作、智能体、策略、奖励、状态转移、轨迹、回报

文章目录1.状态(State)2.动作(Action)3.智能体(Agent)4.策略(Policy)5.奖励(Reward)6.状态转移(State transition)7.智能体与环境交互…

“margin”外边距的各种奇特现象

我们大家在初学css布局html页面结构的时候,肯定会经常使用到“margin”外边距这个属性,这个属性对我们的页面布局十分有用,也十分方便,但是这个属性在使用的时候经常会出现一些奇特的现象,导致我们的页面布局和想要完成…

开发一个MyBatis通用Mapper的轮子

目录 一、前言 二、需求 三、实现原理 1、基于MyBatis3提供的SqlProvider构建动态Sql 2、基于自定义注解,为实体和数据库表建立对应关系 四、代码实现 1、自定义注解 2、几个pojo,用来保存实体对应的信息 3、定义开头说的BaseMapper 4、SqlPro…

Nginx-负载均衡

负载均衡的意思是在服务器集群中,需要有一台服务器作为调度者,客户端所有的请求都有调度者接收,调度者再根据每台服务器的负载情况,将请求分配给对应的服务器去处理 配置过程 1、需要在nginx.conf配置文件中添加服务组 服务组中…

linux安装stable diffusion2.0完整教程-还不会安装sd2.0?一篇文章教会你AI绘画

以下教程出自飞链云AI技术人员,欢迎使用目前国内顶尖的AI绘画工具,微信小程序搜索:【飞链云版图】 注意:请严格按照以下步骤进行,可非常容易进行安装,其他环境不保证丝滑安装; 安装前准备 ub…

分析GC日志

文章目录1.GC日志格式1.1 GC分类1.2 GC日志结构剖析1.3 GC日志分析工具1.4 人生感悟1.GC日志格式 1.1 GC分类 针对HotSpot VM的实现,它里面的Gc按照回收区域又分为两大种类型: 一种是部分收集(Partial GC),一种是整堆收集&#…

三.线程的状态

正常线程的五大状态 :新建状态,就绪状态,运行状态,阻塞状态,死亡状态 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。 运行(RUNNABLE):Java线程中将就绪(re…

小白想学习python?怎么学?

首先,学习Python编程技术,自学或者参加培训学习都适用,每个人都有自己的学习方式和方法。 一:明确自己的学习目标。 不管我们学习什么样的知识,都要对自己的学习目标有一个明确的认识。只有这样才能朝着目标持续的前…

26岁学历低的我,是如何从工厂转行Python工程师?

本人坐标长沙,专科工程造价专业。 转行Python工程师薪资:13K。 饮水思泉,在转行的过程中,同学跟老师们对我的帮助非常大,自己找到工作以后,也试着写篇文章,将自己的心得经验全部分享出来&#…

单例模式及其线程安全问题

目录 ​ 1.设计模式 2.饿汉模式 3.懒汉模式 4.线程安全与单例模式 1.设计模式 设计模式是什么? 设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案 这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的 单例模式的作用就是保证某个…

各类指针的详细介绍

🏖️作者:malloc不出对象 ⛺专栏:《初识C语言》 👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈 目录前言一、基本数据类型指针1.1 指针的…

漏洞丨cve2017-11882

作者:黑蛋 一、漏洞简介 本次漏洞还是一个office溢出漏洞,漏洞编号cve-2017-11882。该漏洞是office一个组件EQNEDT32.EXE引起的栈溢出,通杀office版本2007-2016。 二、复现环境 系统版本 目标程序 调试工具 辅助工具 win7 sp1 x86 off…

【MySQL基础教程】DDL语句详细介绍

前言 本文为 【MySQL基础教程】DDL语句 相关相关内容进行详尽介绍,下边将对数据库操作(包括:查询所有数据库、查询当前数据库、创建数据库、删除数据库、切换数据库等),表操作(包括:查询创建、数…

微信小程序分包及案例

文章目录5. 分包6. 独立分包7. 分包预下载8. 案例-自定义tabbar5. 分包 分包指的是把一个完整的小程序项目,按照需求划分为不同的子包,在构建时打包成不同的分包,用户在使用 时按需进行加载。 可以优化小程序首次启动的下载时间在多团队共同…

微信公众号开发—扫描二维码实现登录方案

😊 作者: 一恍过去💖 主页: https://blog.csdn.net/zhuocailing3390🎊 社区: Java技术栈交流🎉 主题: 微信公众号开发—扫描二维码实现登录方案⏱️ 创作时间: 2022…

非零基础自学Golang 第13章 并发与通道 13.1 概述

非零基础自学Golang 文章目录非零基础自学Golang第13章 并发与通道13.1 概述13.1.1 并行与并发13.1.2 Go并发优势第13章 并发与通道 并发是指在同一段时间内,程序可以执行多个任务。 随着社会需求的发展,光靠硬件的提升是无法满足高并发的需求的&#…

[前端攻坚]:数组去重的几种方法

总结一些日常需要用到的一些api,也是在一些面试中会经常出现的题目,今天分享的是数组去重的几个不同的方法, 同时文章也被收录到我的《JS基础》专栏中,欢迎大家点击收藏加关注。 数组去重的方法 1.set去重 2.map去重 3.for循环in…

Python安装Pycrypto

前言 安装 使用以下命令安装 pip install pycrypto2.6.1报错 如果在安装过程中出现如下错误 则说明系统缺乏相应python开发包,需要进行安装对应的python开发包 解决 在CentOS下,如果是python2.7则使用如下命令安装 yum install python-devel是pyt…

Pytest用例运行及规范

温馨提示 本篇约1600字,看完需3-5分钟,学习学半小时,加油! 先看普通函数运行顺序 import pytestdef test_one():print("我是清安")def test_02():print("--02--")def test_a():print("--a--")de…

BP神经网络的最简Python实现

文章目录神经元BP原理及实现测试BP,就是后向传播(back propagation),说明BP网络要向后传递一个什么东西,这个东西就是误差。 而神经网络,就是由神经元组成的网络,所以在考虑BP之前,还不得不弄清楚神经元是…