node的express模块

news2024/11/15 18:49:20

express的概述:

express是一个提供web服务的框架(内置http模块),他简化了http的相关内容,将对应的内容封装为了特定的方法

安装:

npm i express -S

导入以及代码:

//导入express 是一个函数
const express=require('express')
//createApplication 其实就是导出的express
let app=express() //返回一个应用对象
// use中间件
app.use(express.urlencoded())
//根据对应的请求来进行处理get处理get请求 post处理post请求 put处理put delete处理delete
//出入路由地址 处理函数(请求对象 响应对象)
app.get('/',(req,res,next)=>{
    res.setHeader('Content-type','application/json;charset=utf-8')
    res.end('主页访问')
})
//监听端口 如果不传入对应的ip地址为localhost 和端口ip为3000
app.listen(8080,'127.0.0.1',()=>{
    console.log('当前服务已经启动');
})

express里面相关对象:

express (静态方法 服务相对方法)

urlencoded 转换body的数据

static 将静态资源变成一个服务

json 读取相关json文件

Router 返回一个路由对象

let app =express()
//app中间件引入
app.use(express.urlencoded())//body数据以及转换
//访问路径 不加默认为/
app.use('/public',express.static('./img'))  //静态资源(默认是不能被外部访问)
app.use(express.json()) //json文件读取相关
let router=express.Router() //路由对象

application 的方法:

get 接收get请求post 接收postdelete 接收delete请求put 接收put请求all 所有请求都可以接收listen 监听对应的端口号use 中间件使用(加载某些功能件加载到对应的应用使用中)disable 禁用某个设置 disabled 是否禁用//app中间件引入app.use(express.urlencoded())//body数据获取及转换//访问路径不加默认为/app.use('/public',express.static('./img')) //静态资源管理(默认情况不可以被外界访问)app.use(express.json()) //json文件读取相关let router = express.Router() //路由对象

enable 开启某个设置 enabled 是否开启set 配置某个设置 get获取某个设置app.route 路由规则加载render 渲染engine 模板引擎配置

//  路由localhost里面有get,post,all方法
router.get('/',(req,res,next)=>{
    console.log('hello');
    res.send({
        message:'ok'
    })
})
app.get('/',(req,res)=>{
    res.json({message:'get'})
})
app.post('/',(req,res)=>{
    res.json({message:'post'})
})
app.delete('/',(req,res)=>{
    res.json({message:'delete'})
})
app.put('/',(req,res)=>{
    res.json({message:'put'})
})
app.all('/',(req,res,next)=>{
    res.json({message:'all'})
})
app.set('a','a') //设置值
console.log(app.disable('a'));
app.disable('a')
console.log(app.disable('a')); //禁用
console.log(app.enable('a'));  //模板引擎
app.listen('8080',()=>{
    console.log('服务器启动成功');
})

MVC/三层架构:

概述:

MVC是一种模型,分别为model数据,view视图,controller控制。三层架构是指后端的包(文件夹)分的层级最少分三层,这个三层分别是web层(处理请求及对应的接口书写),service(业务层处理对应的业务),dao(数据库相关操作)。mvc是三层架构中web层的体现

主文件:app.js

const express = require('express')
const {userRouter} = require('./controller/userController')
//新建一个应用对象
const app = express()
//中间件使用
app.use(express.urlencoded())
app.use(express.static('./public'))
//路由引入
app.use('/user',userRouter)

controller层:

//分离controller 主要使用的路由分离
const express = require('express')
const {getUserById,register,login} = require('../service/userService')
//新建一个路由对象
const userRouter = express.Router()
//书写对应的接口
userRouter.get('/:id',getUserById)
//注册接口
userRouter.post('/register',register)
//登录接口
userRouter.post('/login',login)

module.exports = {
    userRouter
}

service层:

//导入对应的dao
const {
    findUserByID,
    saveUser,
    checkUserName,
    queryUserByUsernameAndPassword
} = require('../dao/userDao')
const crypto = require('crypto'); //引入crypto模块
const jwt = require('jsonwebtoken'); //引入jwt模块
const {
    privateKey,
    publicKey
}

dao层:

​
//导入对应的工具类 进行相关sql语句执行
const {execu}  = require('../utils/mysqlUtil')
//根据id进行查找
const findUserByID = (id) =>execu('select * from t_user where id = ?',id)
module.exports={
    findUserByID
}
​

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

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

相关文章

做机器人开发,你一定绕不开的模块!

Allspark 机载电脑 Allspark 是阿木实验室为广大AI智能硬件开发者打造的一款微型边缘计算机。在设计之初就定义了尺寸小巧、重量轻、算力强、可靠、扩展性高的特点。Allspark机身采用铝合金新材料外壳设计,内置静音散热风扇,尺寸94mm*59mm*37mm&#xff…

[附源码]java毕业设计警院学生学习交流系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Linux进程常见通信方式

文章目录1、管道<1>匿名管道<2> 命名管道2、共享内存3、信号量为什么要进程要进行通信呢&#xff1f; 进程间可能存在特定的协同工作的场景&#xff0c;这个时候就需要一个进程把自己的数据交付给另一个进程&#xff0c;让其进行处理。 进程通信的本质 因为进程具有…

OAuth2.o的授权码模式为什么要用code获取token?

授权码模式&#xff08;Authorization Code&#xff09;是 OAuth 功能最齐全、流程最严谨&#xff0c;也是最常用的授权模式。 假设我们要用微信账号登录网易云音乐&#xff0c;需要以下五步&#xff1a; 访问网易云音乐客户端&#xff0c;客户端跳转到微信授权页面&#xff…

神经网络初体验

文章目录前言相关概念BP神经网络具体过程正馈反向传播总结前言 本博客仅做学习笔记&#xff0c;如有侵权&#xff0c;联系后即刻更改 科普&#xff1a; 参考博客:《老饼讲解神经网络》 相关概念 神经网络 模仿人的神经网络构建出来的数学模型 是人工智能的一个主力算法 神经…

STM32 BSRR BRR ODR 寄存器解析(F4系列已经去掉BRR寄存器了)

STM32 BSRR BRR ODR 寄存器解析&#xff08;F4系列已经去掉BRR寄存器了&#xff09;一、用法二、解释三、BSRR、BRR、 ODR 之间的关系G0x0系列GPIO寄存器 F4系列GPIO寄存器&#xff08;没有BRR寄存器了&#xff09; 一、用法 经常会看到类似如下的宏定义语句&#xff0c;用…

tomcat出现中文乱码原因和解决办法(简单快捷易懂)

一、遇到问题 双击打开tomcat中的bin目录下的startup.bat会出现乱码问题 或者cmd里面打开也是乱码的问题 二、出现这个问题的原因 这是因为windows下的默认编码是GBK编码&#xff0c;tomcat默认编码是UTF-8编码 解决思路&#xff1a;那就把tomacat的默认编码改为和windows下…

HTML5-框架-计算机应用2115-2022年11月17日13:57:13

目录 HTML栅格化布局框架 2、demo演示 栅格化理论&#xff1a; 栅格化系统&#xff1a; 网页栅格化&#xff1a; 重点掌握内容&#xff1a; 练习目标: HTML栅格化布局框架 1、将整个HTML浏览器的宽度设为单位1&#xff0c;那么为了操作栅格化方便&#xff0c;我们拆分…

最简单的java工具(JDK+IDEA)安装教程

一、安装包的准备 安装 java 开发者工具的话&#xff0c;分为 JDK IDEA 的安装&#xff0c;网上有很多版本是需要手动配置环境变量的&#xff0c;对大多数新手朋友来说&#xff0c;并不是很友好,下面我分享一种最快捷的安装方法&#xff1a; JDK 官网下载地址&#xff1a;htt…

服务器——SSL/TLS协议信息泄露漏洞(CVE-2016-2183)修复办法

前言&#xff1a;近期某台Windows Server服务器的远程连接端口(3389)被扫出了SSL/TLS协议信息泄露漏洞(CVE-2016-2183),尝试了网上很多复制来复制去的"解决方法",直接导致堡垒机连不上服务器,每次连不上服务器又得去找服务器提供方,真的非常麻烦,在此不得不吐槽一下某…

anaconda+pytorch安装+pycharm环境配置

首先安装anaconda 网址&#xff1a;Anaconda Installers and Packages 我根据需要选择最新的windows-x86版&#xff0c;其他根据需要选择windows和linux,mac系统版本 安装正常安装&#xff0c;安装路径要记住&#xff0c;没有没配置环境变量要用到&#xff0c;安装后运行如果…

字节三面“凉凉”了,面试题与细节回顾,Java程序员的我太难了

面试字节&#xff0c;目前还记得一些细节&#xff0c;暂时先写一篇面经回顾一下吧~文末会有面试资料分享 字节跳动一面 HashTable、Hashmap. Hashtree的区别线程池相关,线程池的流程&#xff0c;参数线程池alivetime存活时间怎么控制cas讲一下redis讲-下,项目里怎么用redis的分…

Linux实用操作-----软件的安装

教程推荐&#xff1a;Linux零基础快速入门到精通 1、Linux系统的应用商店 操作系统安装软件有许多种方式&#xff0c;一般分为&#xff1a; •下载安装包自行安装 •如win系统使用exe文件、msi文件等 •如mac系统使用dmg文件、pkg文件等 •系统的应用商店内安装 •如win…

图算法介绍

为什么要用图算法 图算法有助于我们理解关联数据。理解网络及其内部联系可以为洞察和创新提供不可思议的潜力。 图算法特别适用于理解结构和揭示高度关联的数据集中模式。目前&#xff0c;大数据汇集、混合和动态更新的需求非常强烈&#xff0c;图算法有助于体现数据的关联性…

树结构的实际应用

堆排序 堆排序的介绍 堆排序利用堆这中数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它是不稳定排序堆是具有以下性质的完全二叉树:每个节点的值都大于或等于其它左右孩子节点的值,称为大顶堆,注意:没有要求节点的左孩子和右…

苹果电脑的文件怎么复制到移动硬盘,macbook文件怎么拷贝到移动硬盘

如果我们使用的是Mac电脑&#xff0c;刚好需要将一些文件从Mac复制到NTFS外置硬盘&#xff0c;那么&#xff0c;苹果电脑的文件怎么复制到移动硬盘&#xff1f; 一、如何将文件从Mac电脑上复制到NTFS外置硬盘&#xff1f; 我可以在Mac上正常使用NTFS外置硬盘吗&#xff1f;很多…

Linux【搭建环境与基本指令】

Linux【搭建环境与基本指令】&#x1f34e;一.Linux搭建环境&#x1f352;1.1什么是Linux&#x1f349;1.1.1Linux介绍&#x1f349;1.1.2CentOS 和 RedHat 的关系&#x1f349;1.1.3在Java中应用到Linux的方面&#x1f352;1.2XShell的安装与使用&#x1f349;1.2.1XShell的安…

定时器的使用和线程安全

在linux下如果对定时要求不太精确的话&#xff0c;使用alarm()和signal()就行了&#xff1b; 但是如果想要实现精度较高的定时功能的话&#xff0c;就要使用setitimer函数。 核心api&#xff1a; int setitimer(int which, const struct itimerval *value, struct itimerval *…

【李宏毅】机器学习-RNN

RNN(Recurrent Neural Network) 为什么需要RNN呢&#xff1f; 举例来说&#xff0c;有一个任务需要识别每个单词代表的含义。在下面的句子中&#xff0c;taipei分别表示目的地和出发地&#xff0c;我们希望神经网络能够在不同的句子中&#xff0c;识别出不同的语义&#xff0c;…

3、排序(order by)与分页(limit)多表查询 -mysql

3、排序与分页&多表查询 -mysql排序与分页一、排序 Order By二、分页 Limit多表查询一、一个案例引发的多表连接2、笛卡尔积&#xff08;或交叉连接&#xff09;的理解二、多表查询分类讲解1、等值连接 vs 非等值连接2、自连接 vs 非自连接3、内连接 vs 外连接三、SQL99语法…