簡體   English   中英

無法使用 nodeJS 與 MongoDb 連接

[英]Unable to connect with MongoDb using nodeJS

我正在創建MERN堆棧應用程序我正在嘗試將我的應用程序與MongoDb數據庫連接。我正在使用Mongoose庫與`MongoDb 連接。我收到以下錯誤:

錯誤

TypeError: callback is not a function ['server] at $initialConnection.$initialConnection.then (H:\\React projects\\MyBlog\\node_modules\\mongoose\\lib\\connection.js:744:13) ['server] at process._tickCallback (內部/進程/next_tick.js:68:7)

這是我的代碼如下:

服務器.js

const express = require('express');
const path = require('path');
const cors = require('cors');

const app = express();
app.use(cors());

app.use(require('./routes/saveData.js'));

const port = process.env.PORT || 5000;

app.listen(port,() => {

   console.log(`Server is running on ${port}.`);
});

保存數據.js

const express = require('express');
const router = express.Router();
const bodyParser = require('body-parser');
const blogs = require('../models/blogPost');
const mongoose = require('mongoose');

router.use(bodyParser.json());
router.use(bodyParser.urlencoded({extended: true}));

const dburl = 'mongodb+srv://example:example@cluster1-5wp.mongodb.net/ExpDb?retryWrites=true'

router.post('/save',(req,res) => {

   const data = {

       title: req.body.title,
       detail: req.body.detail
     }

     const newBlog = new blogs(data);

    mongoose.connect(dburl, {useNewUrlParser: true,useUnifiedTopology:true}).then((resp) =>{

          resp.send("Connected");          
          console.log("connected");
        }).catch((err) => { 
            console.log("database error: ",err);
        });

  });

module.exports = router;

下面是貓鼬模式: blogPost.js

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

const BlogPostSchema = new Schema({

  title:String,
  body:String,
  date:{
      type:String,
      dafault:Date.now()
    }
});

const BlogPost = mongoose.model('BlogPost',BlogPostSchema);

module.exports = BlogPost;

有人請讓我知道我做錯了什么。任何幫助將不勝感激。

謝謝

Mongoose 返回的 promise 值是resp 具有.send方法的服務器響應對象是res 試試下面:

router.post('/save', (req, res) => {
...
    mongoose.connect(dburl, {useNewUrlParser: true, useUnifiedTopology:true}).then((resp) =>{         
        // res not resp
        res.send("Connected");          
        console.log("connected");
    })

文檔參考

文檔中的語法,

mongoose.connect(uri, options).then(
  () => { /** ready to use. The `mongoose.connect()` promise resolves to mongoose instance. */ },
  err => { /** handle initial connection error */ }
);

代碼

router.post('/save',(req,res) => {

    mongoose.connect(dburl, {useNewUrlParser: true,useUnifiedTopology:true})
      .then(() =>{        
              res.send("Connected");          
              console.log("connected");
            },
           (err)=> console.log("database error: ",err);)        
      });
}

貓鼬連接沒有回調

mongoose.connect(dburl, {useNewUrlParser: true},{useUnifiedTopology:true});

這應該有效。 然后更新你應該使用模型對象上的貓鼬保​​存方法。

BlogPost.save();

暫無
暫無

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

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