为什么mongodb没有连接我的nodejs简单应用程序?

时间:2017-08-12 18:31:07

标签: node.js mongodb express

我正在尝试将mongodb连接到我的express nodejs Web应用程序。我是nodejs的新手。我正在关注本教程视频https://www.youtube.com/watch?v=eB9Fq9I5ocs,但由于mongodb的连接,我无法完成它。

我的app.js代码:

var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var mongoose = require('mongoose');



Genre = require('./models/genre');

mongoose.connect('mongodb://localhost/bookstore');


mongoose.connection.on('error', (err) => {
console.error('mongodb connection error', err);
});

mongoose.connection.on('connected', () => {
console.info(`Connected to mongodb`);
});

mongoose.connection.on('disconnected', () => {
console.info('Disconnected from mongodb');
});
// var mongoose = connect('mongodb://localhost/bookstore');
// var db = mongoose.connection;

app.get('/', function(req, res){
res.send('Hello World');
});

app.get('api/genres', function(req , res){
Genre.getGenres(function(err, genres){
    if(err){
        throw err;
    }
    res.json(genres);
})
});

app.listen(3666);
console.log('Server Running On http://localhost:3666');

这是genre.js

var mongoose = require('mongoose');


var genreSchema = mongoose.Schema({
name:{
    type: String,
    requires: true
},
create_date:{
    type: Date,
    default: Date.now
 }
});

var Genre = module.exports = mongoose.model('Genre', genreSchema);

module.exports.getGenres = function(callback, limit){
Genre.find(callback).limit(limit);

}

这是终端中数据库的图片

Monogdb shall

我得到的错误: enter image description here

我知道这是一个基本问题,但我无法弄清楚我检查谷歌有其他方式连接到数据库,但我需要知道为什么我从教程视频中遵循的这种特殊方式没有奏效。 正如你所注意到我是nodejs网站开发的新手,所以如果你能建议网站或youtube频道让我开始它,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

您应该使用connect

,而不是未定义的mongoose.connect(...)功能
mongoose.connect('mongodb://localhost/bookstore');

但是这个功能已被弃用,您可以使警告静音,在选项中设置{ useMongoClient: true },但不建议这样做。

最好的方法是使用mongoose.connection对象及其openUri方法:

let conn = mongoose.connection;
conn.openUri('mongodb://localhost/bookstore');

conn.on('error', err => console.error('mongodb connection error', err));

conn.on('connected', () => console.info(`Connected to mongodb`));

conn.on('disconnected', () => console.info('Disconnected from mongodb'));