-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcreateDB.js
49 lines (39 loc) · 1.87 KB
/
createDB.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// запускаем и создаем базу с пользователями для тестов
var mongoose = require('lib/mongoose');
mongoose.set('debug', true);
var async = require('async');
async.series([ // функция , которая запускает функции из аргумента-массива по очереди = одну за другой = ждет пока первая вызовет колбэк, потом запускает вторую
open,
dropDatabase,
// requireModels,
createUsers
], function (err, results) { // в results попадает все, что вернули функции выше
console.log(arguments);
mongoose.disconnect();
process.exit(err ? 255 : 0); // если ошибка то exit code 255, иначе 0
});
function open(callback) {
mongoose.connection.on('open', callback);
}
function dropDatabase(callback) {
var db = mongoose.connection.db;
db.dropDatabase(callback);
}
// function requireModels(callback) { // в старой версии(вроде бы) нужно было для каждой модели запустить ensureIndexes что бы в базе нельзя было дублировать имена
// require('models/user');
// async.each(Object.keys(mongoose.models), function (modelName, callback) {
// mongoose.models[modelName].ensureIndexes(callback);
// }, callback);
// }
function createUsers(callback) {
require('models/user'); // создаем индексы для новой базы
var users = [
{username: 'Вася', password: 'supervasya'},
{username: 'Петя', password: '123'},
{username: 'admin', password: 'thetruehero'}
];
async.each(users, function (userData, callback) {
var user = new mongoose.models.User(userData);
user.save(callback);
}, callback);
}