Mongoose: рдирд┐рдХреНрд╖реЗрдкреАрдХрд░рдг: рдорд╛рдирдЧреЛ: рдордкреНрд░реЙрдорд┐рд╕ (рдореЛрдВрдЧреЛрдЬрд╝ рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд╛рджрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп) 4.8.0 рдФрд░ 4.8.1 рдХреЗ рд╕рд╛рде рдЪрд┐рддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 2 рдлрд╝рд░ре░ 2017  ┬╖  37рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: Automattic/mongoose

рдореВрдВрдЧреЛрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде 4.8.0 рдФрд░ 4.8.1 (рдиреЛрдб рд╕рдВрд╕реНрдХрд░рдг 6.9.5 рд╣реИ рдФрд░ рдореЛрдВрдЧреЛрдмреАрдбреА рд╕рдВрд╕реНрдХрд░рдг 3.2.11 рд╣реИ) рдирд┐рдореНрди рдЪреЗрддрд╛рд╡рдиреА рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ рдЬрдм рдкрд╣рд▓реА рдмрд╛рд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рдмрд╛рдж рдЖрд╡реЗрджрди рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ (рдЪреЗрддрд╛рд╡рдиреА рддрдм рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдЬрдм рдПрдХ рд╣реА рдХреЛрдб рдкрд╣рд▓реА рдмрд╛рд░ рдХреЗ рдмрд╛рдж рдмрд╛рдж рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдЖрд╡реЗрджрди рдЕрднреА рднреА рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдЖрд╡реЗрджрди рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдкрд╣рд▓реА рдмрд╛рд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рдмрд╛рдж рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЪреЗрддрд╛рд╡рдиреА рд╢реБрд░реВ рд╣реЛ рдЧрдИ рд╣реИ):

DeprecationWarning: Mongoose: mpromise (mongoose рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд╛рджрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп) рдкрджрд╛рд╡рдирдд рд╣реИ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд╛рджреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдкреНрд▓рдЧ рдХрд░реЗрдВ: http://mongoosejs.com/docs/promises.html

4.7.9 рдФрд░ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдЯреАрдХ рд╕рдорд╛рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рдорд╛рдирдЧреЛ рдХрдиреЗрдХреНрд╢рди рд╕реЗрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:

`// Set up mongoose and DB connection
 var mongoose = require('mongoose');
 mongoose.Promise = require('bluebird');
 mongoose.connect('mongodb://localhost:27017/basedir', {server: { poolSize: 5 }});`
help wanted needs clarification

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣рд╛рдЙрдЯреЛ рдлрд┐рдХреНрд╕ рдбреЗрдкреНрд░рд┐рд╕рд┐рдПрд╢рди рдЪреЗрддрд╛рд╡рдиреА:

var mongoose = require('mongoose');

mongoose.Promise = global.Promise;
var schema = new mongoose.Schema({
 // definition
}, {
 // options
});

module.exports = mongoose.model('foobar', schema);

рд╕рднреА 37 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреНрдпрд╛ рдЖрдк рдЙрд╕ рдХреЛрдб рдХреЛ рдкреЗрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ? рдпрд╣ рдХреЛрдб рдЗрд╕рд▓рд┐рдП рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЕрднреА рддрдХ рдХрд┐рд╕реА рд╡рд╛рджреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ (рдЬрдм рддрдХ рдЖрдк рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХрдиреЗрдХреНрд╢рди рд╕реНрдирд┐рдкреЗрдЯ рдЪреЗрддрд╛рд╡рдиреА рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ?)

рдХреЛрдИ рднреА рдХрдиреЗрдХреНрд╢рди рд╕реНрдирд┐рдкреЗрдЯ рдЪреЗрддрд╛рд╡рдиреА рдХрд╛ рдЙрддреНрдкрд╛рджрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдирд┐рдореНрди рдирд╡рд╛рдЧрдВрддреБрдХ рд╕реЗрд╡ рд╕реНрдирд┐рдкреЗрдЯ рд╡рд╣ рдХреЛрдб рд╣реИ рдЬреЛ рдЪреЗрддрд╛рд╡рдиреА рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдкрд╣рд▓реА рдмрд╛рд░ рдЬрдм рдХреЛрдб рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдлрд┐рд░ рд╕реЗ, рдЪреЗрддрд╛рд╡рдиреА рд╕рдВрд╕реНрдХрд░рдг 4.7.9 рдФрд░ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ):

 `                       var curDate = new Date();

                         var newuser = new user(
                         {                             
                                "userName": userName,
                                "hashed_password": hashed_password,
                                "emailReg": false,
                                "email": "~",
                                "firstName": "",
                                "lastName": "",
                                "address.streetAddress": "",
                                "address.city": "",
                                "address.state": "",
                                "address.postalCode": "",
                                "phoneNumbers": [],
                                "accessLevel": 2,
                                "active": true,
                                "trialStartDate": curDate,
                                "maxStorageByteLimit": constants.maxStorageBytesPerUser,
                                "signUpDate": curDate,
                                "passwordResetDate": curDate,
                                "salt": temp,
                                "storageBytesUsed": 0
                            });

                        if (phoneNumberValid != false)
                        {
                            newuser.phoneNumbers.push({
                                "type": "mobile",
                                "number": contactPhoneNumber,
                                "primary": true
                            });
                        }

                        wlogger.crit("Create new user by UserName: " + userName);

                        newuser.save(function (err)
                        {
                            if (err)
                            {
                                wlogger.error(err + " - when saving user "
                                    + " creation by UserName: " + userName);
                                callback({
                                    "response": false,
                                    "res": "User creation failed. "
                                    + " Please try again or contact us at [email protected]"
                                });
                            }
                            else
                            {
                                wlogger.crit("Saved new user info for UserName: "
                                    + userName);

                                return callback({
                                        "response": true,
                                        "res": "Created user by User Name " + userName,
                                        "user_id": newuser._id,
                                        "last_modified_date": curDate
                                });
                            }
                        })`

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдХреАрдорд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

`var userSchema = mongoose.Schema({ 
token : String,
email: String,
userName: String,
deviceId: String,
devicePhoneNumber: String, 
hashed_password: String, 
hashed_admin_code: String,
maxStorageByteLimit: { type: Number, default: 1073741824 },
accessLevel: { type: Number, default: 2 },
lastAccessType: Number,
storageBytesUsed: { type: Number, default: 0 },
totalStorageBytesUsed: { type: Number, default: 0 },
deletedStorageBytesUsed: { type: Number, default: 0 },
salt : String,
salt1 : String,
temp_str: String,
syncInProcess: { type: Boolean, default: false },
syncStartDate: { type: Date, default: Date.now },
syncVersion : { type: Number, default: 0 },
active: { type: Boolean, default: false },
disabled: { type: Boolean, default: false },
emailReg: { type: Boolean, default: false },
regPending: { type: Boolean, default: false },
emailChangePending: { type: Boolean, default: false },
regCodeSendCount: { type: Number, default: 0 },
trialStartDate: Date,
signUpDate: Date,
passwordResetDate: Date,
lastLoginDate: Date,
lastModifiedDate: Date,
curLoginDate: Date,
apnDeviceTokens: [ String ],
curSessionIds: [ String ],
curIpAddr: { ipType: String, 
    upper64: Schema.Types.Long,
    lower64: Schema.Types.Long },
firstName: String,
lastName: String,
address: { streetAddress: String,
    city: String,
    state: String, postalCode: String },
phoneNumbers: [ phoneNumbersSchema ],
categories: [ categoriesSchema ],
providerCustomers: [ customerSchema ],
serviceProviders: [ providerSchema ],
ipAddrs: [ ipAddrSchema ],
recentUploads: [ recentUploadSchema ],
recentUploadsGizmo: [ recentUploadSchema ],
recentUploadsLife: [ recentUploadSchema ],
recentUploadsVehicle: [ recentUploadSchema ],
recentUploadsMisc: [ recentUploadSchema ],
recentViews: [ recentViewsSchema ],
recentAdds: [ recentAddsSchema ],
recentAddedFiles: [ recentAddedFilesSchema ],
locations: [ locationSchema ],
inMessages: [ inMessageSchema],
outMessages: [ outMessageSchema ]
  });`

рдореИрдВ mongoose v4.8.1 рдФрд░ node.js v7.5.0 рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

mongoose.Promise = global.Promise;
mongoose.connect(db.mongodb.uri, db.mongodb.options);
DeprecationWarning: Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html

@ stevenelson74708 рд╕реНрдирд┐рдкреЗрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд▓реЗрдХрд┐рди рд╕реНрдХреАрдорд╛ рд╣реА рд╢рд╛рдпрдж рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдФрд░ рдЕрдзрд┐рдХ рдХреЗ рд▓рд┐рдП рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдХреИрд╕реЗ рдХрдиреЗрдХреНрд╢рди рдЦреЛрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╕реНрдХреАрдорд╛ рдЖрдпрд╛рддрд┐рдд рдФрд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ / mongoose Promise constructor рд╕реЗрдЯ рд╣реИред

рд╕реНрдХреАрдорд╛ рдХреЛ рд╕реНрдХреАрдорд╛ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

`module.exports = mongoose.model('users', userSchema);   `

рдФрд░ рд╕реНрдХреАрдорд╛ рдХреЛ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ newuser.save рдХреЛ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:

`var user = require('config/models/users');`

рдХрдиреЗрдХреНрдЯ рд╕реНрдирд┐рдкреЗрдЯ (рдЬрд╣рд╛рдВ рдХрдиреЗрдХреНрд╢рди рдЦреБрд▓рд╛ рд╣реИ рдФрд░ рдореИрдВрдЧреЛрдЬ рдкреНрд░реЛрдорд┐рд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╕реЗрдЯ рд╣реИ) рдХреЛ рдореЗрд░реА рдкрд╣рд▓реА рдкреЛрд╕реНрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рджреМрд░рд╛рди рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИред

рдореЗрд░реЗ рджреВрд╕рд░реЗ рдкреЛрд╕реНрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП newuser.save рд╕реНрдирд┐рдкреЗрдЯ рдХреЛ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдХреАрдорд╛ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ newuser.save рддрдм рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рд░реНрдЧ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдПрдкреНрд▓реАрдХреЗрд╢рди рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдмрд╛рдж рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдЪреЗрддрд╛рд╡рдиреА рдХреЗрд╡рд▓ рдкрд╣рд▓реА рдмрд╛рд░ рд╣реЛрддреА рд╣реИ рдЬрдм newuser.save рдХреЛрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рдмрд╛рдж рднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдПрдХ рд╣реА newuser.save рдХреЛрдб рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рдмрд╛рдж рдХрдИ рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЪреЗрддрд╛рд╡рдиреА 4.7.1 рдФрд░ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

@ stevenelson74708 рдореБрдЭреЗ рдЙрди рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рдРрдк рдХреЗ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдореЗрдВ рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддреЗ рд╣реИрдВред рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧреЛрдВ рдиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореБрджреНрджреЗ рдЦреЛрд▓реЗ рд╣реИрдВ, рдФрд░ рд╣рд░ рдПрдХ рдиреЗ рдЕрдиреБрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд╛рджрд╛ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЙрдкрдЬрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ рдЖрдк рдЙрд╕ рдХреНрд░рдо рдореЗрдВ рдХреБрдЫ рдЧрд▓рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдиреЗ mongoose.Promise ред

рдХреНрдпрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдореИрдВ рдЖрдкрдХрд╛ рдХреЛрдб рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдБ?

рдиреАрдЪреЗ рдРрдк рдореЗрдВ рд╕рднреА рдХреЛрдб (рд╕рдЯреАрдХ рдХреНрд░рдо рдореЗрдВ) рд╣реИрдВред рдЖрд░рдВрднреАрдХрд░рдг рдЬреЛ рдореЛрдВрдЧреЛрдЬрд╝ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдореЛрдирдЧреЛрдЬрд╝ рд╕реЗрдЯ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЬрдм рдкреНрд░рд╛рд░рдВрдн рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ рддреЛ рдЪреЗрддрд╛рд╡рдиреА рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЪреЗрддрд╛рд╡рдиреА рдХреЗрд╡рд▓ рдкрд╣рд▓реА рдмрд╛рд░ рд╣реЛрддреА рд╣реИ рдЬрдм рдЖрд╡реЗрджрди рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж newuser.save рдХреЛрдб (рдореЗрд░реА рдкрд┐рдЫрд▓реА рдкреЛрд╕реНрдЯ рдореЗрдВ рд╢реЛ) рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рдХрд╛рд░рдг рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдмрдЪрдд рд╕реЗ рдкрд╣рд▓реЗ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдлрд╝реЙрд░реЗрд╕реНрдЯрдСрдирдПрдбрдпреВрдбреЗрдЯ рдХреЙрд▓ рд╣реЛрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рд╕реЗрд╡ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИ рдЬреЛ рдЪреЗрддрд╛рд╡рдиреА рдХрд╛ рдХрд╛рд░рдг рдмрдирддреА рд╣реИред

рдореВрдВрдЧреЛрдЬрд╝ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд╣рд▓реА рдЪреАрдЬрд╝реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ рдЖрд░рдВрднреАрдХрд░рдг рдореЗрдВ рд╣реЛрддреА рд╣реИред рдХреНрдпрд╛ рдорд╛рдирд╕реВрди рд╡рд┐рдиреНрдпрд╛рд╕ рдмрд╛рдж рдореЗрдВ рдЖрд░рдореНрдн рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕реЗ рдХрд┐ рдХреНрд░рд┐рдПрдЯрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдмрд╛рдж?

рдлрд┐рд░ рд╕реЗ, рдЪреЗрддрд╛рд╡рдиреА 4.7.1 рдФрд░ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреА рд╣реИ:

`// Set up mongoose and DB connection
var mongoose = require('mongoose');

mongoose.Promise = require('bluebird');
mongoose.connect('mongodb://localhost:27017/basedir', {server: { poolSize: 5 }});
var conn = mongoose.connection;

conn.once('open', function ()
{
    wlogger.info("Mongoose connection opened on process " + process.pid);
});`

рдирд╣реАрдВ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд╣рд▓реЗ рдЖ рд╕рдХрддрд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдЖрдкрдХреЗ рдРрдк рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрд┐рдВрджреБ рд╣реИ рдпрд╛ рдХреНрдпрд╛ рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рд╣реИ?

App.js рдлрд╝рд╛рдЗрд▓ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рд╣реИред рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдиреЛрдб app.js рдЯрд╛рдЗрдк рдХрд░рдХреЗ рдЖрд╡реЗрджрди рдордВрдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ 4.8.1 рдФрд░ рдиреЛрдб 7.5.0 рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдореИрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╡рд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдмреНрд▓реВрдмрд░реНрдб рдХреЛ рдкреНрд▓рдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЗрд╕ рдХреЛрдб рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдкрд░ рдЪреЗрддрд╛рд╡рдиреА рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреА рд╣реИ:

`import * as mongoose from 'mongoose';
 import * as bluebird from 'bluebird';

 (<any>mongoose).Promise = bluebird;`

рд╣рд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛ 'mongoose' рд╕реЗ рдХреБрдЫ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рд╣рд░ рдореЙрдбрд▓ рдлрд╝рд╛рдЗрд▓ (рдлрд╝рд╛рдЗрд▓ рдЬрд╣рд╛рдВ рдореИрдВ рдЕрдкрдиреЗ рд╕реНрдХреАрдорд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ) рдХреЗ рдмрдЬрд╛рдп рдХреЗрд╡рд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрд┐рдВрджреБ рдлрд╝рд╛рдЗрд▓ рдореЗрдВред

// Set up mongoose and DB connection
var mongoose = require('mongoose');

mongoose.Promise = require('bluebird');
mongoose.connect('mongodb://localhost:27017/basedir', {server: { poolSize: 5 }});
var conn = mongoose.connection;

conn.once('open', function ()
{
    console.log('test');
});

рдЗрд╕ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рдкреНрд░рд┐рдВрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рдФрд░ рд╣реИред

@vladimirdjurdjevic рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдЖрдк рд╡рд╛рджреЗ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ mongoose async op рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореИрдВ рдЯреАрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕рдХрд╛ рдХреЛрдИ рд▓реЗрдирд╛ рджреЗрдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдореИрдВрдиреЗ рдРрдк рдХреЗ рдКрдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╡рд╛рджрд╛ рд╡рд╛рджрд╛ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИред рдЬреЗрдПрд╕ рдлрд╛рдЗрд▓ рдЬреЛ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдПрдВрдЯреНрд░реА рдкреЙрдЗрдВрдЯ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЬрдм рдкрд╣рд▓рд╛ newuser.save рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рдмрд╛рдж рд╡рд╛рджрд╛ рд▓рд┐рдм рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдЬреИрд╕рд╛ рдХрд┐ рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рдКрдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред Newuser.save рдРрд╕рд╛ рдкрд╣рд▓рд╛ mongoose async рдСрдк рд╣реИ рдЬреЛ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╡рд╛рджреЗ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рд╡рд╛рджреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╣реЛрддрд╛ рд╣реИред

рдХреНрдпрд╛ рд╡рд╛рджреЗ рд▓рд┐рдм рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реЗрдЯ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдЬрдм рдореЛрдВрдЧреЛрдЬрд╝ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╡рд╛рджрд╛ рд▓рд┐рдмрд╛рд╕ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕рдВрдЧрдард┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣реБрдБрдЪрддрд╛ рд╣реИ?

@ stevenelson74708 рдореБрдЭреЗ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЖрд╡реЗрджрди рдХреЗ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдореЗрдВ mongoose.Promise = global.Promise рд╕рд╛рде рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╣рд░ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдЬреЛ рдЖрдо рд╡рд╛рджреЛрдВ рддрдХ рдкрд╣реБрдБрдЪрддреА рд╣реИред рдмрд╣реБрдд рдЧреБрд╕реНрд╕рд╛ рдЖ рд░рд╣рд╛ рд╣реИред рдмрд╕ рдПрдХ рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдорд╛рдирдЧреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯ рдХрд░реЗрдВ, рдЗрд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ рдФрд░ рдЬрд╣рд╛рдБ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рдЖрдпрд╛рдд рдХрд░реЗрдВред

рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдпрд╣ рднреА рджреЗрдЦрд╛ рдХрд┐ рдореБрдЭреЗ рдпрд╣ рдЪреЗрддрд╛рд╡рдиреА рдорд┐рд▓ рд░рд╣реА рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореИрдВрдиреЗ рдЕрдкрдиреА рдРрдк рдореЗрдВ рд╡рд╛рджрд╛ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рд╣реИред рдЬреЗрдПрд╕ рдлрд╛рдЗрд▓ред рдореИрдВрдиреЗ рдПрдХ рд╣реА рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рджреЗрд╢реА рдФрд░ рдмреНрд▓реВрдмрд░реНрдб рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИред

// FILE: app.js
import bluebird from 'bluebird';
import mongoose from 'mongoose';

// use bluebird as default promise library
mongoose.Promise = bluebird;

рдореИрдВ рдЕрдкрдиреЗ рдХреБрдЫ рдореЙрдбрд▓реЛрдВ рдореЗрдВ рдореИрдВрдЧреЛрдЬрд╝ рдХрд╛ рдЖрдпрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╕реНрдХреАрдорд╛ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдХрднреА рднреА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд╛рджреЗ рдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗрдЯ рдХрд░рдХреЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдорд╛рдирдЧреЛ рдХреЛ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ (рдиреАрдЪреЗ рд╕реНрдирд┐рдк рдореЗрдВ TODO рджреЗрдЦреЗрдВ)ред рдореБрдЭреЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреБрдЫ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рджреЗрдЦрдХрд░ рд╕рдорд╛рди рдХреЛрдб рд╕рдВрд░рдЪрдирд╛ рджреА рдЧрдИ рдереАред

// FILE: SessionModel.js
import bluebird from 'bluebird';
import mongoose from 'mongoose';

// TODO: remove this redundant bit of code
// use bluebird as default promise library
mongoose.Promise = bluebird;

SessionSchema.methods.getUser = function(callback) {
  return mongoose.model('User').findById(this.user, callback);
};

@mcfarljw рдЖрдк рдРрд╕рд╛ рдХреБрдЫ рдХрд░рдиреЗ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИрдВ:

// config.js
const bluebird = require('bluebird');
const mongoose = require('mongoose');
mongoose.Promise = bluebird;
mongoose.connect('mongodb://localhost:27017/myApp)
module.exports = { mongoose }
// SessionModel.js
const { mongoose } = require('./config')

SessionSchema.methods.getUser = function(callback) {
  return mongoose.model('User').findById(this.user, callback);
};

рдЗрд╕ рддрд░рд╣ рдЖрдкрдХреЛ рдХрдИ рдмрд╛рд░ "mongoose.Promise = bluebird" рд▓рд┐рдЦрдирд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ :)

рдореЗрд░реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, .then() рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдк-рдбреЙрдХреНрд╕ рдкрд░ рдЕрднрд┐рдирдп рдХрд░рддреЗ рд╕рдордп рдкрджрд╛рд╡рдирддрд┐ рдХреА рдЪреЗрддрд╛рд╡рдиреА рдорд┐рд▓ рд░рд╣реА рдереА, рд▓реЗрдХрд┐рди рдЕрднрд┐рднрд╛рд╡рдХ рдбреЙрдХреНрд╕ рдкрд░ рдирд╣реАрдВред рддреЛ рдХрднреА-рдХрднрд╛рд░ рдЪреЗрддрд╛рд╡рдиреА рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдмрдЪреНрдЪреЛрдВ рдХреЗ рдбреЙрдХреНрд╕ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд╕рд╛рде рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреА рд╕рдорд╕реНрдпрд╛ рдереА, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЙрдбрд▓ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд╛рджрд╛ рд▓рд╛рдЗрди рдХреА рдХрдореА рдереА рдЬреИрд╕рд╛ рдХрд┐ рджреВрд╕рд░реЛрдВ рдиреЗ рдКрдкрд░ рд╕рд▓рд╛рд╣ рджреА рд╣реИред

рд╣рд╛рдБ, рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ mongoose.Promise рдХреЛ рд╕реНрдХреАрдорд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕реЗрдЯ рдХрд░рдирд╛ рдЬрд╣рд╛рдБ mongoose.model рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, mongoose рд╕рдВрд╕реНрдХрд░рдг 4.8 рдФрд░ рдмрд╛рдж рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред

рд╣рд╛рдБ, рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд┐рд░реНрдпрд╛рдд рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╕реВрди рд╕рд┐рдВрдЧрд▓рдЯрди рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╕реЗ рдЧреБрдЬрд░рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╣реИрдХ рдХрд╛ рдПрдХ рд╕рд╛ рд╣реИред

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЪреЗрддрд╛рд╡рдиреА рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП "рдЙрдЪрд┐рдд" рдорд╛рдирдЧреЛ рд╕реЗрдЯрдЕрдк / рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреНрдпрд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдорд╛рдирд╕реВрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рд╣реИ рдпрд╛ рдпрд╣ рдЕрдиреБрдЪрд┐рдд рдорд╛рдирдЧреЛ рд╕реЗрдЯрдЕрдк рдХрд╛ рд╕рдВрдХреЗрдд рд╣реИ? рдХреНрдпрд╛ рдХреЛрдИ рдЕрдиреБрд╢рдВрд╕рд┐рдд рдорд╛рдирдЧреЛ рд╕реЗрдЯрдЕрдк рд╣реИ рдЬреЛ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рд░реЛрдХ рджреЗрдЧрд╛? рдлрд┐рд░ рд╕реЗ, рдпрд╣ рдЪреЗрддрд╛рд╡рдиреА рдХреЗрд╡рд▓ рдореВрдВрдЧреЛрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг 4.8.0 рдХреЗ рд╕рд╛рде рд╣реЛрдиреЗ рд▓рдЧреАред

рдореБрдЭреЗ рд╡реИрд╢реНрд╡рд┐рдХ рдорд╛рдирджрдВрдб рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдореИрдВрдиреЗ рдиреАрдЪреЗ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рд╣реИ, рдпрд╣ рд╡рд╛рджрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрд▓реА рдмрддреНрддреА рдХреЛ рдареАрдХ рд╕реЗ рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ_рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВрдиреЗ рд╡рд╛рджрд╛ рд╡рд╛рдкрд╕ рд▓реЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рддреЛ рдпрд╣ ES6 рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧрд╛ред

рдореИрдВ рдмрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛ рдЧрдпрд╛ рдФрд░ рдЬреЛрдбрд╝рд╛

mongoose.Promise = global.Promise

рд╣рд░ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдореЛрдВрдЧреЛрдЬрд╝ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ / рдЖрдпрд╛рдд рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рдЬреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдУрд╡рд░рдХрд┐рд▓ рд╣реИ, рдЗрд╕рдиреЗ рдмрд╣реБрдд рдХрдо рд╕реЛрдЪ рд▓рд┐рдпрд╛ рдФрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рдирд╣реАрдВ рд▓рдЧрд╛, рдФрд░ рдЗрд╕рдиреЗ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ред рддреЛ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реМрджреЛрдВ рдХрд╛ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИред

рдпрд╣ рдореЗрд░реЗ рдХрд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдФрд░ рдЖрдпрд╛рдд рдХреЗ рд╕реАрдорд┐рдд рдЬреНрдЮрд╛рди рдХреЛ рдЪреБрдиреМрддреА рджреЗрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХреЗ рддрд╣рдд рдерд╛ рдХрд┐ рдЪрд╛рд╣реЗ рдЬрд┐рддрдиреА рдмрд╛рд░ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдЪреАрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ, рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рдЙрджрд╛рд╣рд░рдг рдорд┐рд▓рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд╛рджреЗ рдХреЛ рдПрдХ рдмрд╛рд░ рд╕реЗрдЯ рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЖрдк рд╕реЛрдЪреЗрдВрдЧреЗред рддреЛ рдпрд╣ рдереЛрдбрд╝рд╛ рдЬрд╡рд╛рдмреА рд╣реИред

рдирдорд╕реНрддреЗ
рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рд╣реИрдВ рдЬреЛ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреЗ рд╣реИрдВ

import mongoose from 'mongoose';

mongoose.Promise = Promise;

import Test from './test.model';

mongoose.connect(uri, options);
mongoose.connection.on('error', err => console.error(`MongoDB connection error: ${err}`));

Test.create({ name: 'Hi'})
  .then(() => Test.findOne({}))
  .then(res => res.save())
  .then(() => console.log('Done'));

(test.model рдирд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рд╛рде рд╕рд┐рд░реНрдл рдПрдХ рд╕рд░рд▓ рдореЙрдбрд▓ рд╣реИ)

рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ res.save(); рдХрд░рддреЗ рд╕рдордп рдкрд╣рд▓реА рдмрд╛рд░ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рд╕рдм рдХреБрдЫ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдХреЛрдб рдХреЛ рдЯреНрд░рд╛рдВрд╕рдкреНрд▓рд╛рди рдХрд░рддреЗ рд╕рдордп рдСрд░реНрдбрд░ рдмрджрд▓рдиреЗ рдкрд░ рдмреИрдмрд▓ рд╕реЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЖрддреА рд╣реИред рдЬрдм рдмреИрдмрд┐рд▓ рдЯреНрд░рд╛рдВрд╕рдкрд╛рдЗрд▓реНрд╕ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рднреА рдЖрдпрд╛рддреЛрдВ рдХреЛ рд╢реАрд░реНрд╖ рдкрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЬрдм рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ test.model рдХреЛ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╡рд╛рджрд╛-рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЕрднреА рднреА mpromise рдХреЛ рд╕реМрдВрдкреА рдЬрд╛рддреА рд╣реИред

рдореИрдВ Node.js 6.10.0 рдФрд░ Mongoose 4.8.5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реБрдИред

рдореИрдВ рдЕрдкрдирд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд╣реЗрдЬрддрд╛ рд╣реВрдВ:

var newUser = User({
    login       : 'john',
    password    : 'secret',
    firstname   : 'John',
    lastname    : 'Doe',
    avatar      : 'avatar.png'
});

newUser.save(function(err){
    if(err) throw err;

    console.log('User created !');
});

рдФрд░ рдореЗрд░реА рднреА рдпрд╣реА рддреНрд░реБрдЯрд┐ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХреА:

mongoose.Promise = require('bluebird');
mongoose.connect(conf.dbpath);

рдФрд░ рдЗрд╕ рддрд░рд╣:

mongoose.Promise = global.Promise;
mongoose.connect(conf.dbpath);

рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдлрд┐рд░ рд╕реЗ рдЪреЗрддрд╛рд╡рдиреА рджреА рд╣реИред рдореИрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд░реВрдВ ?

рд╣рд╛рдЙрдЯреЛ рдлрд┐рдХреНрд╕ рдбреЗрдкреНрд░рд┐рд╕рд┐рдПрд╢рди рдЪреЗрддрд╛рд╡рдиреА:

var mongoose = require('mongoose');

mongoose.Promise = global.Promise;
var schema = new mongoose.Schema({
 // definition
}, {
 // options
});

module.exports = mongoose.model('foobar', schema);

рд╣рд╛рдБ, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЕрдЧрд░ рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдореЙрдбрд▓ рдореЗрдВ рд░рдЦрддрд╛ рд╣реВрдБред рддреЛ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбрд▓ рдХреЗ рдЕрдВрджрд░ init mongoose.Promise рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ At this point it's unclear to me as to exactly what the "proper" mongoose setup/configuration to avoid the warning is. рдХрд╣рдиреЗ рдкрд░ @ stevenelson74708 рдХрд╛ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдмрд┐рдВрджреБ рд╣реИ

рд╣рд╛рдВ, рдПрдХ рдлрд┐рдХреНрд╕ рд╕рднреА рдореИрдВрдЧреЛрдЬ рдореЙрдбрд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рдФрд░ рдЖрдпрд╛рдд рдХреЗ рдмрд╛рдж mongoose.Promise = global.Promise рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреНрд░реЙрдк рд╣реБрдЖ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд░рд╛рджреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдзрд┐рдХ рдареЛрд╕ рдЙрддреНрддрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдпрд╛ рдЗрд╕рдХреЗ рдкреАрдЫреЗ рдХрд╛рд░рдг рд╣реИрдВред рдореИрдВ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдорд╛рдирд╕реВрди, рдмреЗрдмрд▓ рдпрд╛ рджреЛ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рдХрд╛рд░рдг рдПрдХ рдореБрджреНрджрд╛ рд╣реИред

рд╕рдВрднрд╡рддрдГ # 5030 рдХрд╛ рдПрдХ рдбреБрдкреНрд▓рд┐рдХреЗрдЯред > = 4.9.1 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП, @bricss рд╕рдорд╛рдзрд╛рди рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд┐рдпрд╛ :)

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╕рдорд╛рдзрд╛рди @ рд╕реНрдЯреАрд╡рд╡реЗ-рдкреА-рдХреЙрдо рд╕реЗ рдЖрддрд╛ рд╣реИред рди рдХрд┐ @brics рд╕реЗред
@ vkarpov15 4.9.3 рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдЪреЗрддрд╛рд╡рдиреАред
@stillesjo рдпрд╣ рдмреЗрдмрд▓ рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЪреЗрддрд╛рд╡рдиреА рдмрд╛рдмреЗрд▓ рдХреЗ рдмрд┐рдирд╛ рдиреЗрдЯ рдкрд░ 7.8.0 рдирдВрдмрд░ рдкрд░ рднреА рд╣реЛрддреА рд╣реИред

рдореБрдЭреЗ 4.9.3 ЁЯМ╖ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рдж рд╕реЗ рдХреЛрдИ рдЪреЗрддрд╛рд╡рдиреА рдирд╣реАрдВ рд╣реИ

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЬрдм рд╣рдо рд╣рд░ рдореЙрдбрд▓ рдкрд░ mongoose.Promise = global.Promise; рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ _ideal_ рдареАрдХ рдирд╣реАрдВ рд╣реИ? global.Promise рдХрд╛ рдЙрдкрдпреЛрдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдпрджрд┐ рд╡реЗ рдЪрд╛рд╣реЗрдВ рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ?

рдпреВрдирд┐рдЯ рдореЗрд░реЗ рдореЙрдбрд▓реЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣реА рд╣реИред рдореБрдЭреЗ рдЗрд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реИ рддрд╛рдХрд┐ рд╣рдо рд╕реНрдерд╛рдиреАрдп рдпрд╛ рд╕реАрдЖрдИ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╕рдордп рдЪреЗрддрд╛рд╡рдиреА рди рджреЗрдЦреЗрдВред
рдореИрдВ "mongoose": "4.10.4" рдиреЛрдб v7.10.0 рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

@lesterzone

рдмрд╕ рдЗрд╕ DRY рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ рдЬрд╣рд╛рдБ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбрд▓ рдХреЗ рдЕрдВрджрд░ рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп teh рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрдиреЗрдХреНрд╢рди рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВред

const mongoose = require('mongoose');
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://...');

рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ

рдпрд╣ рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рд╕рднреА рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдпрд╣ рдЖрдкрдХреА рдХреЛрдб рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрд╢рди рдХреЛрдб рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдореЙрдбрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХрдиреЗрдХреНрд╢рди рдХреЛрдб рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╛рджрд╛ рд╕реЗрдЯ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрди рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╡реЗ рдореЙрдбрд▓ рд╡рд╛рджреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗред рд╕реБрд░рдХреНрд╖рд┐рдд рдорд╛рд░реНрдЧ рдмрд╕ рд╣рд░ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╛рджреЗ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
`` ``
'рдорд╛рдирд╕реВрди' рд╕реЗ рдЖрдпрд╛рдд рдорд╛рдирд╕реВрди;
'./config' рд╕реЗ рдЖрдпрд╛рдд рд╡рд┐рдиреНрдпрд╛рд╕;
'рдмреНрд▓реВрдмрд░реНрдб' рд╕реЗ рдЖрдпрд╛рдд рдмреНрд▓реВрдмрд░реНрдб;

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЙрд▓рдмреИрдХ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ => {
mongoose.Promise = bluebird;
// config рдлрд╛рдЗрд▓ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
db = mongoose.connect (config.mongoUrl, {useMongoClient: true});
(Db) рдХреЙрд▓рдмреИрдХ;
}
`` ``

рдЗрд╕ рддрд░рд╣ рд╕реЗ рдореИрдВ рдпрд╣ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред

var colors = require('colors');
var mongo = require('mongodb');
var mongoose = require('mongoose');
mongoose.Promise = require('bluebird');

var db = mongoose.connection;

mongoose.connect('mongodb://localhost:27017/db', { useMongoClient: true })
.then(function(){
  console.log(" Connected to dbName ".green);

}).catch(err => console.error(err));

рдЖрдкрдХреЛ .create рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдХрд┐ .save рдХреА рдмрдЬрд╛рдп рдорд╛рдирд╕ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдмрджрд▓рд╛рд╡ рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ

рдореИрдВ 4.13.9 рдкрд░ рд╣реВрдВ рдФрд░ рдпрд╣ рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реИред @ рдЧрд┐рд▓реНрдмрд░реНрдЯ 136 рд╕рдорд╛рдзрд╛рди рдЗрд╕реЗ рдареАрдХ рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИред .create рдХреЙрд▓ .save, рддреЛ рдХреИрд╕реЗ рд╡рд╣рд╛рдБ рдХреЛрдИ рдЪреЗрддрд╛рд╡рдиреА рдЪреЗрддрд╛рд╡рдиреА рдирд╣реАрдВ рд╣реИ?

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

weisjohn picture weisjohn  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

adamreisnz picture adamreisnz  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ArThoX picture ArThoX  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rohan-paul picture rohan-paul  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Igorpollo picture Igorpollo  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ