【发布时间】:2015-09-06 00:26:48
【问题描述】:
我正在尝试练习 Mongoose 和 Node JS,我想在 Article 模式中使用 Comment 模式,当我运行服务器时,它只会抛出如下错误:
架构数组路径
comments的值无效
这是我的评论模型
module.exports = function( mongoose ) {
var Schema = mongoose.Schema;
var CommentSchema = new Schema({
text: String,
author: String,
createDate: {
type: Date,
default: Date.now
}
});
console.log("********");
console.log(CommentSchema);
console.log("********");
mongoose.model( 'Comment', CommentSchema);
};
还有我的文章模型:
module.exports = function(mongoose){
var Schema = mongoose.Schema;
var Comment = require("./Comment");
console.log("--------");
console.log(mongoose);
console.log("--------");
var ArticleSchema = new Schema({
title: String,
content: String,
author: String,
comments: [Comment.schema],
createDate: {
type: Date,
default: Date.now
}
});
mongoose.model('Article', ArticleSchema);
};
它们位于名为“models”的同一文件夹中。
最后是我的 app.js 来显示绑定:
var express = require('express');
var morgan = require("morgan");
var methodOverride = require("method-override");
var utils = require("./lib/utils");
var config = require("config");
var bodyParser = require('body-parser');
var app = express();
var mongoose = require('mongoose');
var mongooseConnection = utils.connectToDatabase(mongoose, config.db);
var routes = require('./routes/index');
var users = require('./routes/users');
var app = express();
// view engine setup
app.set("port", process.env.PORT || 3000);
app.use(express.static(__dirname + '/public'));
app.use(morgan('dev'));
app.use(bodyParser());
app.use(methodOverride());
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.set('view options', { layout: true});
require("./controllers/ArticleController")(app, mongooseConnection);
require("./controllers/CommentController")(app, mongooseConnection);
require("./controllers/IndexController")(app, mongooseConnection);
require("./models/Article")(mongooseConnection);
require("./models/Comment")(mongooseConnection);
require("./models/User")(mongooseConnection);
app.listen(app.get("port"), function(){
console.log("Express server listening on port" + app.get("port"));
});
谢谢。
【问题讨论】:
-
我不记得需要将连接传递给模式/模型。只需摆脱这些东西并导出模型。
标签: node.js mongodb express mongoose database-schema