zoukankan      html  css  js  c++  java
  • 2/11 Express 通过 mongoose 的 CRUD 发现的坑

    写在前面

      本人太过于菜鸡,今天可谓是废了九牛二虎之力把 mongoose 连接 mongoDB 给搞出来了,太 cao dan le

      在此之前,我希望有缘人看到这,可以先复习一下js异步的问题,

      在这里我以 Promise 为例子简单写了一个随笔 供大家参考

      https://www.cnblogs.com/WaterMealone/p/14396590.html


    第一点 为什么接收不到 post 请求 body 的 json 数据

      express 里面要设置一下,不能直接接受body里面的数据

      在入口文件 app,js 里面添加这个

      

    1 // req.body解析
    2 var bodyParser = require('body-parser');//用于req.body获取值的
    3 
    4 
    5 
    6 // 创建 application/x-www-form-urlencoded 编码解析
    7 app.use(bodyParser.urlencoded({ extended: true}));

    第二点 为什么显示了  topology 错误

      这个是因为,在关闭 connection 的时候没有在 once 里面关闭

      

     第三点 显示了send重复,但是逻辑上应该怎么办

      这个是一个大坑,我今天就滚进去了,我来说一下事发经过

      首先,显示了send 太多了之后,我想了一个法子,定义一个 "全局" 变量 message ,我们可以修改这个变量

      最终才send这变量 message 

      好家伙,设置了之后,我发现,最后最初的数据还是最初的数据,这让我百思不得其解

      翻了翻网上的资源

      我才知道,唯一的答案,是异步处理的问题,连接数据库的时间太久了,那么就先都执行了简单的东西

      于是修改了一下代码,用了promise

      下图有bug, resolve 的位置放错了,这里的异步还是执行早了

      

      应该是这个

      

     第四点 更新 ( update ) 的时候,应该如何更新,是一个一个传吗

      这个当时也很伤脑筋,但是还是翻网页给翻出来了

      

       只要我们的条件是这个样子,传入的数据 可以部分传入修改 或者全部传入修改

        1.全部传入修改 ( 当然这个对于其他不变的属性 也就是覆盖  具体是要参考一下 $set )

        原先的数据

        

        postman里面写的post body 数据

        

         修改

        

        2.部分传入

        

         修改后

        

      暂时应该没有了

      新年快乐

    Let it roll
  • 相关阅读:
    《深入理解Android内核设计思想》已陆续在全国各大书店及网上书店上市,感谢大家一直以来的支持~~
    PKUSC2019 D2T2
    Java面试(二)
    Java面试(一)
    MFC学习(七) 单文档程序
    MFC学习(六)计算器
    C++ 面试题(转载)
    MFC学习(五)常见面试题
    MFC学习(四) 消息机制
    MFC学习(三)程序入口和执行流程
  • 原文地址:https://www.cnblogs.com/WaterMealone/p/14396660.html
Copyright © 2011-2022 走看看