0

我创建了一个名为 links 的 mongoose 模型来以字符串格式存储 youtube 链接,但是我这几天一直面临一个错误,说 model.insertOne 缓冲在 10000 毫秒后超时,请帮助下面是我编写的 app.js 文件,我试图在我的猫鼬集合中创建一个文档

const mongoose = require('mongoose');
const mongoURI = "mongodb+srv://username:password@ecommerceweb.efse8.mongodb.net/PROJECT0?retryWrites=true&w=majority";
const Links = require('./model.js')

var connection = async() => {
    var connect = await mongoose.createConnection(mongoURI, { useNewUrlParser: true, useUnifiedTopology: true }, (err) => {
        if (err) {
            console.log('connectioin err: ', err.message)
        } else {
            console.log('DB connection established')
        }
    })
    connect.once('open', () => {
        console.log('DB connection open')
        gfs = new mongoose.mongo.GridFSBucket(connect.db, { bucketName: 'KLP' })
        console.log('KLP bucket connected')
    })
}
connection();

Links.create({ link: "abc" })
    .then((doc) => {
        console.log('doc created: ', doc)
    }, e => { console.log('error: ', e) })
    .catch(e => { console.log('error man: ', e) })

`这是我配置的猫鼬模型

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var linkSchema = new Schema({
    link: String,
    timeUploaded: { type: Date }
})
linkSchema.pre('save', () => {
    console.log('saving doc')
})
var Links = mongoose.model('Link', linkSchema);
module.exports = Links;

4

1 回答 1

0

我在这个线程中给出了一个深入的答案,也许你会发现它有帮助: Operation `posts.find()` buffering timed out after 10000ms

这个问题与您的问题非常相似。简而言之,问题可能与您的数据库拒绝处理来自服务器的查询有关,因为它没有被列入白名单。如果您使用的是 MongoDB Atlas,则可以选择将 IP 地址添加到数据库安全选项卡中的白名单中。上面提供的链接中的分步指南图。

于 2021-10-24T15:18:24.533 回答