簡體   English   中英

Mongoose 未創建架構或連接到數據庫

[英]Mongoose not creating schema, or connecting to database

每當我使用 express 和 node“發布”某些內容時,我都會收到錯誤消息。 我可以加載網站,但是一旦我提交表單數據它就會崩潰

結果是這樣的:

/Users/anishladdha/url_shortener/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js:185
          callback(new MongooseError(message));
                   ^

MongooseError: Operation `urls.findOne()` buffering timed out after 10000ms
    at Timeout.<anonymous> 

當我運行此代碼時:

const express = require('express');
const bodyParser = require('body-parser');
const request = require('request');
const https = require('https')
const { json } = require('body-parser');
const mongoose = require('mongoose');
const shortID = require('shortid');
const URL = require("./models/url.js")

const app = express();
app.set('view engine', 'ejs');

var mongoDB = 'mongodb://localhost/url_short';
mongoose.connect(mongoDB, {useNewUrlParser: true, useUnifiedTopology: true}).then(console.log("connected?"));
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'MongoDB connection error:'));
db.once("open", function() {
  console.log("MongoDB database connection established successfully");
});
app.use(bodyParser.urlencoded({extended: true}));


//app.get('/') works
app.post('/', async function(req, res) {
    let sid = shortID.generate
    await URL.create({
        longUrl: req.body.user_url,
        shortUrl: sid,
    });
    res.render('index', {sid: sid});
});
app.listen(3000, function() {
    console.log('listening on port:3000');
});

任何幫助,將不勝感激!

好的,所以這很可能是我在編碼過程中做過的最愚蠢的事情。

我沒有意識到你必須安裝 mongodb 才能工作:|

所以是的,可能會這樣做

https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/

根據我的經驗,幾乎每次都是因為在一個項目中安裝和使用了兩個mongoose模塊。 您需要確保node_modules mongoose

npm ls mongoose並找到所有未刪除mongoose包。

例子:

$ npm ls mongoose
my-project@1.0.0 /home/jon/code/my-project
├─┬ package-one@2.0.0
│ └── mongoose@5.11.18
├─┬ package-two@4.0.0
│ └── mongoose@5.12.2  deduped
└── mongoose@5.12.2 

如您所見,我有一個package-one依賴項,它有自己的mongoose模塊的副本(未刪除)。

有多種方法可以解決它。

  • 嘗試更改(增加/減少)您的mongoose版本。
  • 如果可以,請更改所需的mongoose版本的依賴項(包一和包二)。

一個好的開始是了解語義版本控制在 npm 中的工作原理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM