次の埋め込みドキュメントを持っています Mongoose モデルが定義されています
var mongoose = require("mongoose");
module.exports = function(mongoose) {
var Schema = mongoose.Schema,
chapters, articles;
Articles = new Schema({
identity: Number,
order: Number,
quick_title: String,
full_title: String,
last_edited: Number,
contributor: [String],
content: String,
video_link: String,
presentation_link: String,
question_id: [Number],
show_in_chapter: Boolean,
summary_text: String,
summary_image: String
});
chapters = new Schema({
order: Number,
title: String,
articles: [Articles]
});
return mongoose.model('chapters', chapters);
}
.find を介してモデル データベース全体を取得した後、著者が推奨する方法 (EJS テンプレート エンジンを使用) を使用して、backboneJS モデルにブートストラップしようとしています。
var Chapters = Backbone.Collection.extend({});
chapters = new Chapters( JSON.stringify(<%=chapters%>));
上記のコードを使用すると、エラー Unexpected SyntaxError Unexpected Number が表示されます (最初のタイトルが第 1 章であることに関連して)。
この Mongoose モデルを Backbonejs モデルに変換する方法についてのアイデアはありますか? ありがとう!
アップデート:
テンプレートに送信する前に stringify を使用し、次にテンプレート内でかっこで覆うことで機能するようになりました。chapters = new Chapters("(" + <%-chapters2%> + ")");
残念ながら、これでは必要な Backbone コレクションが得られません。「console.log(chapters.toJSON());」を実行すると、次のようになります
[
Object
([object Object],[object Object],[object Object],[object Object]): Object
__proto__: Object
]
.at メソッドを使用する場合、(0) にもモデルが 1 つしかありません。何か案は?