我正在尝试使用其他文件夹中的路线制作应用。在某些路由中,我尝试列出我在数据库中的itens。但是当我使用模型名称时,我得错误地说这个模型没有定义。我在其他文件夹中定义了模型和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);
}
});
});
};
然后它返回博客未定义,甚至导入数据库模型。如果是整个数据库模型,请说我正在尝试打开一个未关闭的连接。
我的代码:(database / 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'));
})
答案 0 :(得分:0)
您应该将模型拆分为另一个文件:
var mongoose = require('mongoose');
var blogSchema = new mongoose.Schema({...})
module.exports = mongoose.model('blog', blogSchema)
要求它:
require('../models/blog')
来自路线/控制器文件的