Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 无法使用nodeJS连接MongoDb_Node.js_Mongodb - Fatal编程技术网

Node.js 无法使用nodeJS连接MongoDb

Node.js 无法使用nodeJS连接MongoDb,node.js,mongodb,Node.js,Mongodb,我正在创建MERNstack应用程序我正在尝试将我的应用程序连接到MongoDb数据库。我正在使用Mongoose库连接到`MongoDb。我收到以下错误: 错误 TypeError:回调不是函数 ['server]位于$initialConnection.$initialConnection.then(H:\React projects\MyBlog\node\u modules\mongoose\lib\connection.js:744:13) ['server]在进程中。_tick回调(

我正在创建
MERN
stack应用程序我正在尝试将我的应用程序连接到
MongoDb
数据库。我正在使用
Mongoose
库连接到`MongoDb。我收到以下错误:

错误

TypeError:回调不是函数 ['server]位于$initialConnection.$initialConnection.then(H:\React projects\MyBlog\node\u modules\mongoose\lib\connection.js:744:13) ['server]在进程中。_tick回调(internal/process/next_tick.js:68:7)

下面是我的代码:

server.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}.`);
});
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;
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;
saveData.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}.`);
});
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;
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;
以下是猫鼬模式: blogPost.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}.`);
});
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;
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 connect没有回拨

mongoose.connect(dburl, {useNewUrlParser: true},{useUnifiedTopology:true});
这应该行得通。然后,要进行更新,应在模型对象上使用mongoose save方法

BlogPost.save();

mongoose connect没有回调

mongoose.connect(dburl, {useNewUrlParser: true},{useUnifiedTopology:true});
这应该行得通。然后,要进行更新,应在模型对象上使用mongoose save方法

BlogPost.save();

Mongoose返回的承诺值为
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返回的承诺值为
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 */ }
);
代码

文档中的语法

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