• node的express模块


    express的概述:

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

    安装:

    npm i express -S

    导入以及代码:

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

    express里面相关对象:

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

    urlencoded 转换body的数据

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

    json 读取相关json文件

    Router 返回一个路由对象

    1. let app =express()
    2. //app中间件引入
    3. app.use(express.urlencoded())//body数据以及转换
    4. //访问路径 不加默认为/
    5. app.use('/public',express.static('./img')) //静态资源(默认是不能被外部访问)
    6. app.use(express.json()) //json文件读取相关
    7. 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 模板引擎配置

    1. // 路由localhost里面有get,post,all方法
    2. router.get('/',(req,res,next)=>{
    3. console.log('hello');
    4. res.send({
    5. message:'ok'
    6. })
    7. })
    8. app.get('/',(req,res)=>{
    9. res.json({message:'get'})
    10. })
    11. app.post('/',(req,res)=>{
    12. res.json({message:'post'})
    13. })
    14. app.delete('/',(req,res)=>{
    15. res.json({message:'delete'})
    16. })
    17. app.put('/',(req,res)=>{
    18. res.json({message:'put'})
    19. })
    20. app.all('/',(req,res,next)=>{
    21. res.json({message:'all'})
    22. })
    23. app.set('a','a') //设置值
    24. console.log(app.disable('a'));
    25. app.disable('a')
    26. console.log(app.disable('a')); //禁用
    27. console.log(app.enable('a')); //模板引擎
    28. app.listen('8080',()=>{
    29. console.log('服务器启动成功');
    30. })

    MVC/三层架构:

    概述:

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

    主文件:app.js

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

    controller层:

    1. //分离controller 主要使用的路由分离
    2. const express = require('express')
    3. const {getUserById,register,login} = require('../service/userService')
    4. //新建一个路由对象
    5. const userRouter = express.Router()
    6. //书写对应的接口
    7. userRouter.get('/:id',getUserById)
    8. //注册接口
    9. userRouter.post('/register',register)
    10. //登录接口
    11. userRouter.post('/login',login)
    12. module.exports = {
    13. userRouter
    14. }

    service层:

    1. //导入对应的dao
    2. const {
    3. findUserByID,
    4. saveUser,
    5. checkUserName,
    6. queryUserByUsernameAndPassword
    7. } = require('../dao/userDao')
    8. const crypto = require('crypto'); //引入crypto模块
    9. const jwt = require('jsonwebtoken'); //引入jwt模块
    10. const {
    11. privateKey,
    12. publicKey
    13. }

    dao层:

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

  • 相关阅读:
    Rsync远程数据同步
    [C++ 网络协议] 套接字和标准I/O
    基于STC12C5A60S2系列1T 8051单片的模数芯片ADC0809实现模数转换应用
    Windows配置python(anaconda+vscode方案)的主要步骤及注意事项
    Android App开发超实用实例 | AlertDialog对话框
    Chrome浏览器插件开发v3版本第二篇:改变页面布局案例
    微服务feign组件学习
    如何用画图将另一个图片中的成分复制粘贴?
    Java学习 5.习题2.
    2021-09-07-Cookie&&Session
  • 原文地址:https://blog.csdn.net/ITjun666/article/details/127911747