node.js - 为什么我无法在简单的 Web 应用程序中从 mongodb 检索数据?

标签 node.js mongodb express mongoose

我正在尝试将 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');

这是体裁.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);

}

这是终端中数据库的图片

/image/S3gFb.png

以及数据库中流派集合的信息

/image/sJFE6.png

一旦我打开主页,我就会看到 Hello World,但是一旦我添加了 api/genres,我应该从 mongodb 获取数据,我就会收到此错误

/image/B4c8o.png

这是文件结构

/image/okHIN.png

我知道这是一个基本问题,但我无法弄清楚我在谷歌上检查还有其他方法可以连接到数据库,但我需要知道为什么我刚刚从教程视频中遵循的这种特定方法没有起作用。 正如您所注意到的,我是 Nodejs Web 开发的新手,因此如果您可以建议网站或 YouTube channel 来让我开始使用它,我将不胜感激。

最佳答案

看来不是数据库连接问题。在您的应用程序中找不到匹配 http://localhost:3666/api/genres 的路由。将 api/genres 替换为 /api/genres 我想一切都会正常工作

关于node.js - 为什么我无法在简单的 Web 应用程序中从 mongodb 检索数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45654740/

相关文章:

java - 使用 java 通过 Mongo 连接池接收消息时超时

javascript - 如何将 app = express() 传递到另一个模块?

angularjs - 从 OPENSHIFT_DATA_DIR 提供图像的缓存问题

ruby-on-rails - 如何在一个compoundJS实例下运行多个 "Applications"?

javascript - 导航栏 Bootstrap 渲染问题

node.js - 使用skipper-s3时如何添加ACL和Content-Type参数?

javascript - Express - 在用作静态服务器之前编辑 HTML

javascript - node.js/socket.io - 跟踪客户端

关闭安全模式的 MongoDB 一致性

mongodb - 我正在研究 Morphia,但对 DBRef 感到困惑