我正在尝试将mongodb连接到我的express nodejs Web应用程序。我是nodejs的新手。我正在关注this教程视频,但由于mongodb的连接,我无法完成它。
我的app.js代码:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
Genre = require('./models/genre');
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'));
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);
}
这是终端中数据库的图片
https://i.stack.imgur.com/S3gFb.png
数据库中的流派集合中的信息
https://i.stack.imgur.com/sJFE6.png
一旦我打开主页面,我就会得到Hello World但是一旦我添加了api / genres,我应该从mongodb获取数据我得到了这个错误
https://i.stack.imgur.com/B4c8o.png
这是文件结构
https://i.stack.imgur.com/okHIN.png
我知道这是一个基本问题,但我无法弄清楚我检查谷歌有其他方式连接到数据库,但我需要知道为什么我从教程视频中遵循的这种特殊方式没有奏效。 正如你所注意到我是nodejs网站开发的新手,所以如果你能建议网站或youtube频道让我开始它,我将不胜感激。
答案 0 :(得分:2)
似乎它不是数据库连接问题。在您的应用程序中找不到路由匹配http://localhost:3666/api/genres
。将api/genres
替换为/api/genres
,我想一切都会正常运作