Я пытаюсь абстрагировать учебник для стека MEAN, чтобы использовать MongoAtlas, а не локальный экземпляр.
Мое соединение Mongoose с БД Atlas работает (насколько я могу подключиться к БД). Но я не могу сделать сохранение (). Я полагаю, что это как-то связано с тем, как я создаю свой объект подключения, но мне кажется, что я не могу понять, в чем проблема.
Я предполагал, что, добавив bufferCommands = false, это скажет мне, что причина, по которой он не работает, заключается в том, что я неправильно открыл объект подключения, но я не вижу никакой ошибки - просто зависаю.
product.js
var mongoose = require('mongoose');
var db = mongoose.connection;
var Schema = mongoose.Schema;
var schema = new Schema ({
imagePath: {type: String, required: true},
title: {type: String, required: true},
description: {type: String, required: true},
price: {type: Number, required:true}
});
var connection = mongoose.createConnection('mongodb+srv://<user>:<password>@cluster0-dpwmr.gcp.mongodb.net/Shopping?retryWrites=true', {useNewUrlParser:true})
module.exports = connection.model('Product', schema);
продакт-seeder.js
var Product = require('../models/product');
var mongoose = require('mongoose');
//mongoose.set('bufferCommands', false);
var products =[
new Product({
imagePath:'https://picsum.photos/250/?random',
title: 'Item 1',
description: 'This is a thing',
price: 10
}),
new Product({
imagePath:'https://picsum.photos/251/?random',
title: 'Item 2',
description: 'This is another thing',
price: 14
}),
new Product({
imagePath:'https://picsum.photos/253/?random',
title: 'Item 3',
description: 'This is a slightly longer description',
price: 30
})
];
var done = 0;
for (i=0; i++; i<products.length){
products[i].save(function(err, res){
if (err){
console.log(err);
exit();
}
done++;
if (done === products.length){
exit();
}
});
}
function exit(){
mongoose.disconnect();
}
Я ожидал, что это создаст новый документ 'products' и запишет его в коллекцию Shopping, но этого не происходит, просто много ничего.