-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdb.js
61 lines (52 loc) · 1.68 KB
/
db.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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
const MongoClient = require('mongodb').MongoClient
const url = 'mongodb://localhost:27017/passwordStore'
const demoUsers = [
{
id: 1,
name: 'Василий З.',
email: '[email protected]',
password: '123456'
},
{
id: 2,
name: 'Петр И.',
email: '[email protected]',
password: 'asdfqwer'
},
{
id: 3,
name: 'Света А.',
email: '[email protected]',
password: 'qazwsxedc'
}
]
exports.connectDb = async (app) => {
const client = await new MongoClient(url, { useNewUrlParser: true, useUnifiedTopology: true }).connect()
if (client) {
// .then( client => {
app.locals.db = client.db('passwordStore')
app.locals.dbClient = client
// passwords = db.collection('passwords')
console.log('= = = Соединение с БД установлено, входите: http://localhost:3000')
// return {client, db}
// })
} else {
// .catch(err => {
console.log('ОШИБКА: ' + err)
// return null
// })
}
}
exports.populateDemo = async (db) => {
console.log('БД была заполнена демо-данными')
return db.collection('passwords').insertMany(demoUsers)
}
exports.fillDemoDataWhenFirst = async (db) => {
// всегда смотрим в базу и проверяем если ли там пользователи
const num = await db.collection('passwords').countDocuments({}) //, (err,num) => {
if (num === 0) { // если записей нет, заполняем демо-данными
await populateDemo(db)
}
const msg = num === 0 ? 'Обнаружен первый запуск. БД была заполнена демо-данными' : ''
return msg
}