<em id="09ttv"></em>
    <sup id="09ttv"><pre id="09ttv"></pre></sup>
    <dd id="09ttv"></dd>

        • mongoose中save無法獲取回調函數值的解決方法

          2018-7-18    seo達人

          如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

          mongoose保存數據:

          const save = new Model(data).save()
              
          • 1

          如果成功,則可以獲取到保存在數據庫的值,但是如果保存數據失敗,則會拋出異常,好在save可以傳入一個回調函數,用法如下:

          const save = new Model(data).save((err, result)=>{ if(err){ // 保存失敗執行的操作
              }else { // 保存成功執行的操作
              }
          
          })
              
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8

          我們希望根據結果獲取到不同的值,但是此時save返回的是undefined,因為save中的回調函數是一個異步操作

          解決方法:

          使用try catch:

          try{
              const save = await new Model(data).save();
              // 保存成功執行的操作 return ... }catch(err){
              // 保存失敗執行的操作 return ... }
              
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8

          注意:在async函數中才可以這么使用,因為await只能用在async函數中

          示例:(注冊功能)

          user.model.js

          const mongoose  = require("mongoose"); const port      = process.env.PORT || "8899"; const UserSchema = mongoose.Schema({
              userName: {
                  type: String,
                  unique: true },
              passWord: String,
              createTime: {
                  type: Date, default: Date.now()
              },
              updateTime: {
                  type: Date, default: Date.now()
              }
          }, {
              timestamps: {
                  createAt: "createTime",
                  updateTime: "updateTime" }
          });
          
          module.exports = mongoose.model("USER", UserSchema);
              
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 12
          • 13
          • 14
          • 15
          • 16
          • 17
          • 18
          • 19
          • 20
          • 21
          • 22
          • 23
          • 24
          • 25

          service.js

          const User = require("./user.model);
          class User{
              async login(user){
                      try{
                          const result = await new User(user).save();
                          // 其他操作,如發送注冊郵件
                          return { success: true }
                      }catch(err){
                          return { success: false, message: "用戶名或密碼錯誤" }
                      }
             }
          }
          moduel.exports = new User();
              
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 12
          • 13

          controller.js

          const server = require("./server); async login(){ // 首先獲取請求中攜帶的用戶信息 const result = await server.login(user);
              if(result.success){ // 注冊成功執行的操作 }else { // 注冊失敗執行的操作 }
          }
          藍藍設計www.sdgs6788.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務

          日歷

          鏈接

          個人資料

          藍藍設計的小編 http://www.sdgs6788.com

          存檔

          久久人人爽人人爽人人爽| 久久99精品国产99久久6男男| 日韩精品无码久久一区二区三| 久久男人中文字幕资源站| 99精品国产免费久久久久久下载 | 亚洲综合婷婷久久| 亚洲国产成人久久精品99 | 色播久久人人爽人人爽人人片aV| 伊人久久大香线蕉成人| 久久精品中文无码资源站| 久久男人中文字幕资源站| 久久精品中文騷妇女内射| 亚洲国产成人久久笫一页| 丁香五月网久久综合| 久久99久国产麻精品66| 久久成人永久免费播放| 99久久精品费精品国产一区二区| 亚洲国产成人精品无码久久久久久综合| 久久无码人妻一区二区三区| 九九热久久免费视频| 狠狠88综合久久久久综合网 | 国产激情久久久久影院老熟女| 狠狠色噜噜色狠狠狠综合久久| 夜夜亚洲天天久久| 久久99热狠狠色精品一区| 日韩人妻无码精品久久久不卡| 久久亚洲国产精品123区| www亚洲欲色成人久久精品| 国产精品岛国久久久久| 国产麻豆精品久久一二三| 久久综合综合久久综合| 亚洲AV无码久久寂寞少妇| 2021最新久久久视精品爱 | 久久精品国产亚洲av麻豆蜜芽| 久久人人爽人人爽AV片| 久久久中文字幕日本| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 久久精品国产亚洲AV电影| 新狼窝色AV性久久久久久| 亚洲国产欧美国产综合久久| 国产亚洲精久久久久久无码77777 国产亚洲精品久久久久秋霞 |