亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何解決 Mongoose v5.11.0 model.find() 錯誤:

如何解決 Mongoose v5.11.0 model.find() 錯誤:

慕森王 2023-09-21 16:43:48
如何解決 model.find() 函數產生“緩沖在...毫秒后超時”的問題?我正在使用 mongoose v 5.11.0、npm v6.14.8 和 mongodb v這是代碼。var express = require('express');var app = express();var bodyParser = require('body-parser');const assert = require('assert');var mongoose = require('mongoose');try {    var db = mongoose.connect('mongodb://localhost:27017', {useNewUrlParser: true, dbName: 'swag-shop' });    console.log('success connection');}catch (error) {    console.log('Error connection: ' + error);}var Product = require('./model/product');var WishList = require('./model/wishlist');//Allow all requests from all domains & localhostapp.all('/*', function(req, res, next) {  res.header("Access-Control-Allow-Origin", "*");  res.header("Access-Control-Allow-Headers", "X-Requested-With, Content-Type, Accept");  res.header("Access-Control-Allow-Methods", "POST, GET");  next();});app.get('/product', function(request, response) {    Product.find({},function(err, products) {        if (err) {            response.status(500).send({error: "Could not fetch products. "+ err});        } else {            response.send(products);        }    });});app.listen(3004, function() {    console.log("Swag Shop API running on port 3004...");});產品型號:var mongoose = require('mongoose');var Schema = mongoose.Schema;var product = new Schema({    title: String,    price: Number,    likes: {type: Number, default: 0}});module.exports = mongoose.model('Product', product);
查看完整描述

6 回答

?
手掌心

TA貢獻1942條經驗 獲得超3個贊

根據此鏈接中找到的文檔:https ://mongoosejs.com/docs/connections.html#buffering

Mongoose 讓您可以立即開始使用模型,而無需等待 mongoose 建立與 MongoDB 的連接。

這是因為 mongoose 在內部緩沖模型函數調用。這種緩沖很方便,但也是造成混亂的常見原因。如果您在沒有連接的情況下使用模型,Mongoose 默認情況下不會拋出任何錯誤。

長話短說:

在建立連接之前將調用您的模型。您需要將async/await與 connect() 或 createConnection() 一起使用;或使用.then(),因為這些函數現在從Mongoose 5返回 Promise 。


查看完整回答
反對 回復 2023-09-21
?
ITMISS

TA貢獻1871條經驗 獲得超8個贊

通過刪除文件夾、文件并重新安裝模塊解決了model.find() error: Operation products.find() buffering timed out after 10000ms"該問題。node_module*.jsonmongoose

按照此說明解決了警告問題https://mongoosejs.com/docs/deprecations.html


查看完整回答
反對 回復 2023-09-21
?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

嗯,我遇到了同樣的問題并且有非常相似的代碼。我在測試時發送 get 請求時遇到了同樣的錯誤。

最終,我找到了解決方案,即我的本地主機數據庫當時沒有運行。雖然這是一個愚蠢的錯誤,但我很難找到它。


查看完整回答
反對 回復 2023-09-21
?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

對我來說是 100% MongoDB Atlas 問題。我在圣保羅創建了一個集群,但由于某種原因未能按預期工作。我已將其刪除,并在 AWS/弗吉尼亞北部 (us-east-1) 創建一個新的,然后一切又開始工作。


我正在使用這個函數連接到數據庫并避免一些警告


mongoose.connect(

    url,

    { useNewUrlParser: true, useUnifiedTopology: true },

    function (err, res) {

        try {

            console.log('Connected to Database');

        } catch (err) {

            throw err;

        }

    });


查看完整回答
反對 回復 2023-09-21
?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

只需使用127.0.0.1而不是localhost


mongoose.connect('mongodb://127.0.0.1:27017/myapp');

或者在 mongoose.connect 方法中使用 family:4


mongoose.connect('mongodb://localhost:27017/TESTdb', {

    family:4

})

    .then(() => {

        console.log('FINE');

    })

    .catch(() => {

        console.log("BAD");

    })


查看完整回答
反對 回復 2023-09-21
?
弒天下

TA貢獻1818條經驗 獲得超8個贊

出現此錯誤是因為您在創建與數據庫的連接之前嘗試訪問模型

始終在 app.js 中鏈接您的 mongodbconnection 文件(如果您已創建)

 var mongoose = require('./mongoconnection');

或者只是將 mongodb 連接代碼保留在 app.js 中


查看完整回答
反對 回復 2023-09-21
  • 6 回答
  • 0 關注
  • 229 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號