首页 > 其他分享 >六.express框架基础使用

六.express框架基础使用

时间:2022-10-11 19:11:52浏览次数:71  
标签:body req const 框架 express 基础 json id

express框架

1.特性 : 

  上手简单,学习门槛低

  具有丰富的基础API支持

  强大的路由功能

  灵活的中间件机制及吩咐的第三方中间支持

  性能接近原生Node

  安全稳定,代码测试覆盖率进百分之百

能做什么?

  传统Web网站

  API接口服务器

  服务端渲染中间层

  开发辅助工具

  自定义集成框架  

如何创建?

  1.基础创建 : 

    npm init
    
npm install express --save

  2.模板创建  

    npx express-generator

案例 : 

const express = require('express')
const app = express()
const fs = require('fs')
// get请求
app.get('/',(req,res)=>{

    fs.readFile('./db.json','utf-8',(err,data)=>{
        if(!err){
            const newdata = JSON.parse(data).user
            console.log(newdata);
            // express 返回采用的是send
            res.send(newdata)
        }else{
            // 状态码
            res.status(500).json({err})
        }
        
    })
})

// 可以接受post 为 'content-type': 'application/x-www-form-urlencoded'  的数据  加了req.body才可以接受到
app.use(express.urlencoded())

// 可以接受post 为 'content-type': 'application/json'  的数据  加了req.body才可以接受到
app.use(express.json())

// post请求
app.post('/',(req,res)=>{
    // 获取请求头的信息
    // console.log(req.headers);

    // 接受发送过来的数据
    // console.log(req.body);

    // 获取发送过来的数据
    const body = req.body

    // 读取数据,获取到最后的id
    fs.readFile('./db.json','utf-8',(err,data)=>{
        // 读取原本db.json的全部
        const newData = JSON.parse(data)
        // 得到最后一个id
        let newId = newData.user[newData.user.length-1].id+1

        // 得到最后一个id,再添加入发送过来的数据里面
        body.id = newId

        // 把原本db.json的数据添加上发送过来的数据
        newData.user.push(body)

        fs.writeFile('./db.json',JSON.stringify(newData),(err,data)=>{
            if(!err){
                // 返回出去的状态码和数据
                res.status(200).json({
                    message:true
                })
            }
        })  
    })
})

// 修改id为xx 的数据  http://127.0.0.1:3031/3
app.put('/:id',(req,res)=>{
    // 得到id
    console.log(req.params.id);
    const id = req.params.id

    // 发送过来的数据
    const body = req.body
    console.log(req.body);

    // 先获取到 db.json的数据
    fs.readFile('./db.json','utf-8',(err,data)=>{
        if(!err){
            // 获取全部的数据
            const newData = JSON.parse(data)
            console.log(newData);

            // 获取user的数据
            const userData = newData.user

            // 判断id的数据存在不?
            const idBody = userData.find(item=>item.id == id)
            console.log(idBody);

            // 不存在返回
            if(!idBody){
                res.status(403).json({
                    error:'不存在数据'
                })
                return;
            }
            // 存在
            // 原本id的name = 传递过来的数据有,那么久用传递过来的数据,没有就用原本的数据
            idBody.username = body.username ? body.username : idBody.username
            idBody.age = body.age ? body.age : idBody.age
 
            // 把新的idbody 放入 userdata
            userData[id-1] = idBody
            console.log(idBody);
            console.log(newData);

            // 写入
            fs.writeFile('./db.json',JSON.stringify(newData),(err,data)=>{
                if(!err){
                    // 返回出去的状态码和数据
                    res.status(200).json({
                        message:'修改成功'
                    })
                }
            }) 

        }
    })
})

app.listen(3031,()=>{
    console.log('127.0.0.1:3031');
})

 中间件 

标签:body,req,const,框架,express,基础,json,id
From: https://www.cnblogs.com/qd-lbxx/p/16780307.html

相关文章

  • 七.express框架进阶 - 中间件的使用
    中间件: 例如,我想给每个请求,都打印一下,请求过来的时间,那么就要给每个请求都加上.这样太麻烦,所以产生了中间件   有: 路由中间件...等等使用中间......
  • 三.nodejs基础模块 http
    服务端开发--基础--采用http模块例子: //引入http模块consthttp=require('http')//要返回1.htmlconstfs=require('fs')//创建一个服务constserv......
  • Java基础语法 Break和Continue
    Break和ContinuepackageBasicGrammar.day05;/*break和continue关键字的使用 使用范围 循环中使用的作用(不同点) 相同点break: switch-case 循环结构中 ......
  • 程序、进程、线程、多线程是什么,为什么要用多线程?Java基础复习--数组数据结构分析 ins
    大家可分享关于Java微服务相关知识,包括但不限于Java微服务开发经验、架构组成、技术交流、中间件等内容,我们鼓励springcloud架构为基础发散出击,从而达到技术积累的目的,快来......
  • 计算机基础课程资源列举
    组成原理:哈工大刘宏伟老师的课;操作系统:南大蒋炎岩老师,视频加经典教材《深入理解计算机系统》《现代操作系统》;数据库:初学者《MySQL必知必会》,深入《MySQL技术内幕——lnn......
  • 开目3DCAPP三维装配工艺设计基础教程
    ★行业专家倾力推荐★武汉开目公司官方指定教程★赠送开目3DCAPP-A体验版安装文件,让您率先体验其强大的性能★70个视频操作案例及全书的样例素材文件,让学习更为快捷、高效【......
  • SQL基础篇
    SQL基础及安装配置SQL(StructuredQueryLanguage):结构化查询语言,用于访问和处理数据库的标准的计算机语言,可面向数据库执行查询、读取、插入、更新、删除数据,还可以创建......
  • iview框架form表单内的select标签存在的校验问题
    近期做项目发现,iview框架的select框,选中值之后,没能通过表单的必填校验...仔细看了下,目前我们项目是请求的数据list的id作为key值来进行渲染,这个id是个number类型的0.0OK,......
  • 多线程 - (五)Executor框架
    Executor框架详解Executor框架应用使用Executor框架解决仓库配货时的并发问题基本思路:因为仓库出库单出库配货时,存在资源共享问题(商品共享),所以多线程并发配货时存在同步问题......
  • 企业应用大数据开源框架的意义何在?
    随着互联网技术的进步和发展,大数据开源框架成为很多企业数字化转型的利器。作为低代码开发平台,大数据开源框架拥有高效、灵活、便利等诸多优势特点,是为企业实现赋能、朝着......