Мангуста сохранить (пример с их сайта не работает) - PullRequest
0 голосов
/ 29 июня 2018

У меня есть файл для добавления данных в Монго через mongoose:

var mongoose = require('mongoose');
var mongoDB = 'mongodb://myuser:mypass@ds145293.mlab.com:45293/employees';
mongoose.connect(mongoDB);
mongoose.Promise = global.Promise;
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'MongoDB connection error:'))
db.once('open',function(){
    console.log('connected')
    var kittySchema = mongoose.Schema({
        name: String
      });
    var Kitten = mongoose.model('Kitten', kittySchema);
    var fluffy = new Kitten({ name: 'fluffy' });
    fluffy.save(function (err, fluffy) {
        if (err) return console.error(err);
        console.log('saved');
      });
})
mongoose.connection.close()

Скопировано почти дословно с сайта mongoose. Я могу подключиться к базе данных, но я не получаю 2-й журнал консоли. У меня есть база данных, но нет коллекций. Это проблема?

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Замените mongoose.Schema на new Schema, а также я не думаю, что mongoose.Promise = global.Promise требуется.

0 голосов
/ 29 июня 2018

Невозможно завершить сохранение до закрытия базы данных. Существует множество вариантов ожидания сохранения. Мне нравится async / await.

edit: извините, это было слишком быстро. Обновленный пример.

var mongoose = require('mongoose');
var mongoDB = 'mongodb://localhost/something';

async function run() {
    await mongoose.connect(mongoDB);
    console.log('connected')
    var kittySchema = new mongoose.Schema({ name: String }); 
    var Kitten = mongoose.model('Kitten', kittySchema);
    var fluffy = new Kitten({ name: 'fluffy' });
    await fluffy.save();
    console.log('saved');
    mongoose.connection.close();
}

run();

Или вы можете просто переместить закрытие после того, как вы сохранили:

var mongoose = require('mongoose');
var mongoDB = 'mongodb://localhost/something';

mongoose.connect(mongoDB);
mongoose.Promise = global.Promise;
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'MongoDB connection error:'))
db.once('open', function () { 
    console.log('connected')
    var kittySchema = new mongoose.Schema({name: String });
    var Kitten = mongoose.model('Kitten', kittySchema);
    var fluffy = new Kitten({ name: 'fluffy' });
    fluffy.save(function (err, fluffy) {
        if (err) return console.error(err);
        console.log('saved');
        mongoose.connection.close();
    });
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...