javascript - 在 Express 中导入模块时无法识别 Mongo 模型

标签 javascript node.js mongodb express

我正在尝试制作一个具有其他文件夹中的路线的应用程序。在某些 route ,我尝试列出数据库中的项目。但是当我使用模型名称时,我会出错说该模型未定义。我在其他文件夹中定义了模型和 mongo 连接,然后将其包含到初始化程序文件(app.js)中。但是当我访问我想要的路线时,我收到了错误。我尝试将 db 模块导入到路由中,但出现另一个错误。

这是我想要访问代码的路线(routes/blog.js):

module.exports = function(app){
    // here i tried import the db module, and doenst worked.

    app.get('/blog', function(req, res){
        Blog.find({}, function(err, result){
            if (err) {
                console.log(err);
            }
            else{
                res.send(result);
            }
        });
    });
};

然后返回Blog未定义,甚至导入db的Model。如果是整个数据库模型,则说我正在尝试打开一个未关闭的连接。

我的代码:(数据库/dbConnection.js):

module.exports = function(app){

    //***   mongoose requirement ***
    var mongoose = require('mongoose');

    //***   Database connection setup ***
    mongoose.connect('mongodb://localhost/blog_app');

    //*** Schema creatin ***
    var blogSchema = new mongoose.Schema({
        title: String,
        image: String,
        body: String,
        created: {type: Date, dafault: Date.now()}

    });

    //***   Model creation ***
    var Blog = mongoose.model('Blog', blogSchema);

};

然后是我用来初始化应用程序的文件。

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

consign().include('database').then('routes').into(app);


app.listen(3000, function(){
    console.log("Server running on port 3000. At: " + moment().format('LT'));
})

最佳答案

您应该将模型拆分到另一个文件中:

var mongoose = require('mongoose');
var blogSchema = new mongoose.Schema({...})

module.exports = mongoose.model('blog', blogSchema)

需要它:

require('../models/blog')

来自您的路线/ Controller 文件

关于javascript - 在 Express 中导入模块时无法识别 Mongo 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43032652/

相关文章:

javascript - 为什么添加立即调用的lambda会使我的JavaScript代码快2倍?

javascript - socket.io:在同一个HTML页面中正确地更换房间并实现聊天

javascript - 想要检查用户是否已经存在 MongoDB

java - 如何使用 java spring 注释在 MongoDB 中创建完全填充的引用对象

javascript - Chrome 扩展 - 在同一内容脚本的文档开始处注入(inject)脚本,在文档结束处注入(inject)另一个脚本

javascript - 通过许多请求在 javascript 中使用相同的 http session

php - 如何仅使用 Google 云端硬盘的 REST API 检查访问 token 是否有效?

javascript - Bootstrap 中的按钮无法按预期工作

javascript - 在express.js中处理POST请求时出现404错误

mongodb - 在 MongoDB 中如何使用索引进行排序?