Бих препоръчал да не поддържате една връзка, ако искате някакъв вид мащабируемост.
Има редица опции за групиране на връзки и т.н., но повечето хора, които прекарват каквото и да е време с Node и MongoDB, в крайна сметка преминават към Mongoose в даден момент.
В допълнение към добавянето на хубав слой на схемата, той предлага абстракция на връзката, така че да можете да използвате споделена връзка по подразбиране, като извикате mongoose.connect()
, или можете да създадете множество връзки или да участвате в групирането на връзки, като извикате mongoose.createConnection()
. И в двата случая вие го извиквате без обратно извикване и машината mongoose ще отложи следващите извиквания към модула, докато връзката не бъде установена, така че кодът ви да не се интересува.
Нещо като вашия случай на употреба може да изглежда така:
// in your app.js or server.js file
var mongoose = require('mongoose');
mongoose.connect(config.db.url); // assuming you have some module that handles config variables
След това в ./models/user.js
const mongoose = require('mongoose'),
Schema = mongoose.Schema;
const UserSchema = new Schema({
name: String,
age: Number,
roles: [String]
});
mongoose.model('User',UserSchema);
накрая, да кажем начална функция за създаване на вашата първоначална група потребители:
const mongoose = require('mongoose'),
User = mongoose.model('User');
// create some users
var user1 = new User({name: 'modulus admin', age: 42, roles: ['admin', 'moderator', 'user']});
var user2 = new User({name: 'modulus user', age: 22, roles: ['user']});
user1.save(console.log);
user2.save(console.log);