Создание вложенных документов в моделях NodeJS с несколькими файлами JS - PullRequest
0 голосов
/ 07 февраля 2019

В проекте NodeJS у меня есть 2 модели "Новости" и "Комментарии", как показано ниже.

/* File: Comment.js */
const mongoose = require("mongoose");

/* Create Comment Schema */
var commentSchema = mongoose.Schema({
  text: { type: String, required: 'Kindly enter the comment text'},
  newsId: { type: mongoose.Schema.Types.ObjectId, ref: "News", required: 'Provide the news ID to which this comment belongs' },
  created_date: { type: Date, default: Date.now }
});

module.exports = mongoose.model('Comment', commentSchema);


/* File: News.js */
const mongoose = require("mongoose");

/* Create News Schema */
var newsSchema = mongoose.Schema({
  link: { type: String, index: {unique: true, dropDups: true}, required: 'Kindly enter the link of the news' },
  description: { type: String, required: 'Kindly enter the description of the news' },
  comments: { type: [commentSchema] }
});

module.exports = mongoose.model('News', newsSchema);

Модель новостей имеет массив изкомментарии, которые являются вложенным документом.Но выдает ошибку

ReferenceError: commentSchema не определена.

Я заметил, что если обе схемы как в одном файле, это не выдает никакой ошибки.

1 Ответ

0 голосов
/ 07 февраля 2019

Похоже, вы не импортируете commentSchema в файл news.js, поэтому он работает, когда они находятся в одном файле.

...