0
Expressを使ってNode.jsでアプリをやっている以下のエラーが表示されます。私は私のデザインTypeError:未定義のMongooseのプロパティ 'push'を読み取ることができません
Party.js
var mongoose = require("mongoose");
var partySchema = new mongoose.Schema({
partyName: String,
songs: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "Song"
}
]
});
module.exports = mongoose.model("Party", partySchema);
Song.js
var mongoose = require("mongoose");
var songsSchema = new mongoose.Schema({
videoId: String,
videoName: String
});
module.exports = mongoose.model("Song", songsSchema);
マイApp.js
app.post("/search/addSong", function(req, res) {
Party.find({partyName:"hello"},function(err,party){
if(err){
console.log("Failed in find");
} else {
console.log(party);
// console.log(typeof(req.body.videoId));
var videoId = req.body.videoId;
var newSong = [ {
videoId:req.body.videoId,
videoName:req.body.videoName
}
];
Song.create(newSong, function(err, createdSong){
if(err){
console.log("Error creating a new party");
} else {
console.log(createdSong);
party.songs.push(createdSong);// ERROR ON THIS LINE
party.save();
res.redirect("/search");
}
});
}
});
res.render("addSong");
});
を詳しく説明しているの下に、私は私のDB操作のためにマングースを使用しています パーティーとソングのコレクションオブジェクトを個別に作成することができます。ソングを追加すると電子パーティーキューは、私は次のエラーを取得する:
TypeError: Cannot read property 'push' of undefined
誰も私が私がここで行方不明何を聞かせていただけます..!
ありがとうございます。
問題は、オブジェクトを別のオブジェクトにプッシュしようとしている行です。 –
答えに示唆されているようにfindOneを使用すると、まだ問題がありますか? –