ReferenceError文章未定义

时间:2015-10-30 02:25:09

标签: node.js mongodb mongoose

我定义了几个模式。这是一个很好的工作:

var mongoose     = require('mongoose'), 
Schema       = mongoose.Schema;

var NewsSchema   = new Schema({
    name: String,
    route: String,
    remoteURL: String,
    articles: [{title: String, link: String, Image: String, contentSnippet: String}],
    retrieved: Date,
    dormant: { type: Boolean, default: false}
});
module.exports = mongoose.model('News', NewsSchema);

这是第二个几乎相同的:

var mongoose     = require('mongoose'), 
Schema       = mongoose.Schema
// NewsSchema = new Schema({ name: String });   

var ArticlesSchema   = new Schema({
    title: String,
    link: String,
    pubDate: Date,
    image: String,
    contentSnippet: String,
    sourceName: String
    // sourceId: [ {type: Schema.Types.ObjectId, ref: NewsSchema}]
});

module.exports = mongoose.model('Articles', ArticlesSchema);

我已经在程序的顶部加载了两个模块,以及其他一些类似的东西:

players = require('./app/models/players'),
articles = require('./app/models/articles'),

如果我用以下内容创建第一个实例:

var player = new Players();

但是如果我尝试用:

创建第二个实例
var item = new Articles();

我收到主题中的错误。在跟踪代码时,我可以看到模块在范围内,所以我不相信它像重新定义变量或类似的东西一样愚蠢。

这里有几个这种性质的问题,并且没有一个被接受的答案适用。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

嗯,经过进一步分析,工作“模型”不再起作用。事实证明,我根据Visual Studio Code的建议更改了顶部require语句中的大小写。一切都很好。

答案 1 :(得分:0)

而不是 sourceId:[{type:Schema.Types.ObjectId,ref:NewsSchema}] 使用 sourceId:[{type:Schema.Types.ObjectId,ref:'NewsSchema'}] 会解决你的问题