Я создаю новый продукт, после его сохранения я перехожу к поиску его с помощью mongoose findById
, а затем я попытаюсь создать другой документ " Изображение ", которое указано в схеме продукта. Когда я выполняю код, он дает мне TypeError: image.save is not a function
. Как мне это исправить?TypeError: image.save не является функцией при создании нового документа с mongoose и выражением
Product.create(req.body.product, function(err, product) {
if (err) {
console.log(err);
} else {
product.save();
Product.findById(product._id, function(err, foundProduct) {
if (err) {
req.flash('error', err.message);
res.redirect('/product');
} else {
Image.create(req.files, function(err, image) {
if (err) {
req.flash('error', err.message);
res.redirect('/product');
} else {
image.save();
foundProduct.images.push(image);
foundProduct.save();
res.redirect('/product/' + product._id);
}
});
}
});
}
});
Это мои схемы:
var productSchema = new mongoose.Schema({
name: String,
price: String,
description: String,
gender: String,
images: [{
type: mongoose.Schema.Types.ObjectId,
ref: "Image"
}],
sizes: {
ch: Number,
m: Number,
g: Number,
eg: Number
},
type: String,
likes: Number, default: 0
});
var imageSchema = new mongoose.Schema({
public_id: String,
url: String,
secure_url: String,
resource_type: String,
format: String,
bytes: String
});
Спасибо, что мне очень помогло! Любые предложения о том, почему метод .create не работал в этом случае? У меня есть другие части кода, где он работает как шарм. – tFranzoni
Чтобы быть честным с вами, я никогда не использовал эту функцию .create. Функция .save всегда была основным способом сохранения документов в db. Но, я посмотрел его онлайн, и похоже, что это создание - это более общие функции для сохранения объектов (что необязательно должно быть экземпляром модели). В то время как в .save объект должен быть создан (как я сделал с «новым изображением()»). У меня никогда не было проблем с сохранением, поэтому я считаю, что у вас не будет проблем, если вы будете использовать его только. http://stackoverflow.com/questions/38290684/mongoose-save-vs-insert-vs-create http://mongoosejs.com/docs/api.html –