码迷,mamicode.com
首页 > 其他好文 > 详细

2/11 Express 通过 mongoose 的 CRUD 发现的坑

时间:2021-02-15 12:25:57      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:逻辑   mis   logs   https   没有   资源   send   连接数据库   font   

写在前面

  本人太过于菜鸡,今天可谓是废了九牛二虎之力把 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.部分传入

    技术图片

 

     修改后

    技术图片

 

  暂时应该没有了

  新年快乐

 

2/11 Express 通过 mongoose 的 CRUD 发现的坑

标签:逻辑   mis   logs   https   没有   资源   send   连接数据库   font   

原文地址:https://www.cnblogs.com/WaterMealone/p/14396660.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!