рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЕрдЧрд░ рдкрд╣рд▓рд╛ рдХрдиреЗрдХреНрдЯ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдиреЗрд╡рд▓рд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрддрд╛ рд╣реИ, рдЬреЛ рдиреЛрдб рдХреЛ рдХреНрд░реИрд╢ рдХрд░рддрд╛ рд╣реИред
рддреЛ рдЗрд╕ рдмрдЧ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рддреНрд░реБрдЯрд┐ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдФрд░ рджреБрд░реНрдШрдЯрдирд╛ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдРрдк рдореЗрдВ рдирд┐рдореНрди рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
db.on('error', console.error.bind(console, 'connection error:'));
рдЕрдм рд╣рдо рдЗрд╕ рдмрдЧ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
[MongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]]
рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░: рдЪреВрдВрдХрд┐ autoreconnect
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рддреНрдп рд╣реИ, рдореИрдВ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ MongoDB рдлрд┐рд░ рд╕реЗ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЬрд▓реНрдж рд╣реА рдПрдХ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛ред
рдиреЛрдЯ: рдпрджрд┐ рдкрд╣рд▓рд╛ рдХрдиреЗрдХреНрдЯ рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЛрдВрдЧреЛрдбреАрдмреА рд╕реЗ рдХрдиреЗрдХреНрд╢рди рд░рдирдЯрд╛рдЗрдо рдХреЗ рджреМрд░рд╛рди рдЦреЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдСрдЯреЛрд░реЗрдХрдиреЗрдХреНрдЯ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛ред рд╕рдорд╕реНрдпрд╛ рдЕрд╕рдВрдЧрддрддрд╛ рд╣реИ рдпрджрд┐ рдРрдк рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ MongoDB рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред
(рдпрджрд┐ рдпрд╣ рд╡рд╛рдВрдЫрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ, рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рддреНрд░реБрдЯрд┐ рдХреЛ рди рдкрдХрдбрд╝рдХрд░ рдФрд░ рдиреЛрдб рдХреЛ рдХреНрд░реИрд╢ рд╣реЛрдиреЗ рд╕реЗ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реИред)
рдиреЛрдб v4.4.1, [email protected] , [email protected] , [email protected]
рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдиреЛрдб 6, 7, рдиреЗрд╡рд▓рд╛ (рдХрдо рд╕реЗ рдХрдо 6 рдорд╣реАрдиреЗ), рдореЛрдВрдЧреЛ 3.2 - 3.4
рдЗрд╕рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ #4890
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ mongodb-core
рдореБрджреНрджрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реА рдХреЛрд╢рд┐рд╢ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рднреА рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╛рдж рдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рд╕реЗ рдЕрд▓рдЧ рдХреНрдпреЛрдВ рд╣реЛрдЧрд╛ред
рдХреНрдпрд╛ рдЖрдк рд╡рд╣рд╛рдВ рднреА рдЗрд╕ рдореБрджреНрджреЗ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдпрд╣рд╛рдБ рдПрдХ рдкреВрд░реНрдг рд░реЗрдкреНрд░реЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ:
const mongoose = require('mongoose');
const co = require('co');
mongoose.Promise = global.Promise;
const GITHUB_ISSUE = `gh-5169`;
exec()
.catch(error => {
console.error(`Error: ${ error }\n${ error.stack }`);
});
function exec() {
return co(function*() {
const db = mongoose.createConnection(`mongodb://localhost:27017/${ GITHUB_ISSUE }`);
db.on('error', (error) => {
console.error(`in an error ${ error }\n${ error.stack }`);
})
});
}
рд░реЗрдкреЛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ рдореЛрдВрдЧреЛрдбрдм-рдХреЛрд░ рдореЗрдВ рджреЗрдЦрд╛ рд╣реИред рдпрд╣ рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдЗрдЪреНрдЫрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ :
рдпрджрд┐ рдпрд╣ рд╣реЛрд╕реНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛ рдкрд╛рддрд╛ рд╣реИ рддреЛ рдбреНрд░рд╛рдЗрд╡рд░ рдкрд╣рд▓реЗ рдХрдиреЗрдХреНрдЯ рдкрд░ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдЕрдЧрдореНрдп рдореЗрдЬрдмрд╛рдиреЛрдВ рдкрд░ рддреНрд╡рд░рд┐рдд рд╡рд┐рдлрд▓рддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рд╣реИред рдкреБрди: рдХрдиреЗрдХреНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗрд╡рд▓ рддрднреА рдкреНрд░рд╛рд░рдВрдн рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдбреНрд░рд╛рдЗрд╡рд░ рдиреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рд╣реЛред
рдпрд╣ рддрдп рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рдпрд╣ рдЖрд╡реЗрджрди рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИред рдпрд╣ рдбрд┐рдЬрд╝рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдбреНрд░рд╛рдЗрд╡рд░ рддреЗрдЬреА рд╕реЗ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╡рд╣рд╛рдВ рдирд╣реАрдВ рдмреИрдарддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдбреНрд░рд╛рдЗрд╡рд░ рд╕реЗ рдХреЛрдИ рдЕрд▓рдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ред
рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд┐рдореНрди рд╕реНрддрд░ рдХреЗ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдЙрдЪрд┐рдд рд╣реИред рдпрд╣ рдЙрди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдорджрдж рдХрд░реЗрдЧрд╛ рдЬреЛ рдЧрд▓рддреА рд╕реЗ рдЧрд▓рдд рд╣реЛрд╕реНрдЯ рдпрд╛ рдЧрд▓рдд рдкреЛрд░реНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдиреЗрд╡рд▓реЗ рдореЗрдВ рдХреБрдЫ рдФрд░ рдбреЗрд╡рд▓рдкрд░-рдЕрдиреБрдХреВрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
error
рдШрдЯрдирд╛ рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред)рдЕрдЧрд░ рдореБрдЭреЗ рд╕рд╣реА рд╕реЗ рдпрд╛рдж рд╣реИ, рдЬрдм рдореИрдВрдиреЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ рдЕрдВрдд рдореЗрдВ рдХреБрдЫ рдЕрд╕рдлрд▓ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдмрд╛рдж рдЬреБрдбрд╝рд╛, рддреЛ рдРрдк рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрддрд╛рд░рдмрджреНрдз рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред (рд▓реЗрдХрд┐рди рдпрд╣ рдлрд┐рд░ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд╛рдпрдХ рд╣реИред)
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рд▓реЗрдмрд▓ рдХрд░реВрдВрдЧрд╛
рдирд╣реАрдВ, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрдиреЗрдХреНрд╢рди рдкрд░ рддреЗрдЬреА рд╕реЗ рд╡рд┐рдлрд▓ рд╣реЛрдирд╛ MongoDB рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реБрд╕рдВрдЧрдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ mongoose рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рд▓рд╛рдн рдирд╣реАрдВ рд╣реИред
рд╕реНрдЯреНрд░рд╛рдВрдЧрд▓реВрдк рд▓реВрдкрдмреИрдХ рдореЛрдВрдЧреЛрдбрдм рдХрдиреЗрдХреНрдЯрд░ рдХреА рдпрд╣ рд╣рд╛рд▓рд┐рдпрд╛ рдкреЛрд╕реНрдЯ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЙрдирдХрд╛ lazyConnect
рдзреНрд╡рдЬ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╣рд┐рдЯ рд╣реЛрдиреЗ рддрдХ рдкрд╣рд▓реЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред рдпрджрд┐ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд╣рд▓рд╛ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдиреЗрдХреНрд╢рди рд╣рд╛рдирд┐ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреНрд░рднрд╛рд╡реА рд╣реЛ рдЬрд╛рдПрдВрдЧреА (рдпрд╣ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛)ред
рдореЗрд░реА рд░реБрдЪрд┐ рдХрдВрдЯреЗрдирд░ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рд╣реИ, рдЬрд╣рд╛рдВ "рдХрдВрдЯреЗрдирд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдСрд░реНрдбрд░" рдХреЛ рдЕрдХреНрд╕рд░ рд╕реЗрдЯ рдФрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди "рд╕реЗрд╡рд╛ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХрд╛ рдХреНрд░рдо" рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ред рдПрдХ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рдЯреВрд▓ рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореЛрдВрдЧреЛ рдХрдВрдЯреЗрдирд░ "рдКрдкрд░" рд╣реИ, рднрд▓реЗ рд╣реА рдореЛрдВрдЧреЛ рд╕реЗрд╡рд╛ рдЕрднреА рддрдХ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдореЗрд░рд╛ рдореЛрдВрдЧреЛ рдХрдВрдЯреЗрдирд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 1s рд▓реЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реЗрд╡рд╛ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП 5s рд▓реЗрддрд╛ рд╣реИ, рдФрд░ рдореЗрд░рд╛ рдРрдк рдХрдВрдЯреЗрдирд░ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП 1s рд▓реЗрддрд╛ рд╣реИ рдФрд░ рд╕реЗрд╡рд╛ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП 1s рд▓реЗрддрд╛ рд╣реИ, рддреЛ рдРрдк рд╕реЗрд╡рд╛ рдореЛрдВрдЧреЛ рд╕реЗрд╡рд╛ рд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓ рдЬрд╛рдПрдЧреА, рдЬрд┐рд╕рд╕реЗ рдкрд╣рд▓рд╛ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдореВрд▓ рд░реВрдк рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИ ред
рдбреЙрдХрд░ рдХрдВрдкреЛрдЬрд╝ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдпрд╣ рдХрд╣рдирд╛ рд╣реИ:
рдХрдВрдкреЛрдЬрд╝ рддрдм рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдПрдХ рдХрдВрдЯреЗрдирд░ "рддреИрдпрд╛рд░" рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдЬреЛ рднреА рдЖрдкрдХреЗ рд╡рд┐рд╢реЗрд╖ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ) - рдХреЗрд╡рд▓ рддрдм рддрдХ рдЬрдм рддрдХ рд╡рд╣ рдЪрд▓ рд░рд╣рд╛ рд╣реЛред рдЗрд╕рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рд╣реИред
рдбреЗрдЯрд╛рдмреЗрд╕ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) рдХреЗ рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рд╕рд┐рд╕реНрдЯрдо рдХреА рдПрдХ рдмрд╣реБрдд рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рд╕рдмрд╕реЗрдЯ рд╣реИред рдЙрддреНрдкрд╛рджрди рдореЗрдВ, рдЖрдкрдХрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрдиреБрдкрд▓рдмреНрдз рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдХрд┐рд╕реА рднреА рд╕рдордп рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд▓рдЪреАрд▓рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдмрд╛рдж рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдЕрдВрддрддрдГ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдпрд╣ рд╣реИ рдХрд┐ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдФрд░ рдЬрдм рднреА рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдЦреЛ рдЬрд╛рдП рддреЛ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдореЗрдВ рдпрд╣ рдЬрд╛рдВрдЪ рдХрд░реЗрдВред
рддреЛ рдХрдВрдЯреЗрдирд░ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдпрд╣рд╛рдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрдВрддрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдпреЗ рджреЛрдиреЛрдВ рд░реБрдЦ рдорд╛рдиреНрдп рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВ:
рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдПрдХ рдЕрдВрддрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдЖрдк рдкрд░ рдЖрддреА рд╣реИ рдХрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рд╕рднреА рдиреЗрд╡рд▓реЗ рдЖрдкрдХреЛ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╡рд┐рдлрд▓ рд░рд╣рд╛ред рдпрджрд┐ рдЖрдк рдЙрддреНрдкрд╛рджрди рдореЗрдВ (рдпрд╛ рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рд╕рдВрджрд░реНрдн рдореЗрдВ) рдбреЙрдХрд░ рдХрдВрдкреЛрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд┐рдЧреНрдз рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЛ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрдк рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИред
рд░реБрдЦ 2, рдпрд╣ рддрдм рд╣реИред
рдкрд╣рд▓реА рдмрд╛рд░ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдкрд░ рдСрдЯреЛ-рд░реАрдХрдиреЗрдХреНрд╢рди рдЪрд╛рд╣рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реВрдВ:
function createConnection (dbURL, options) {
var db = mongoose.createConnection(dbURL, options);
db.on('error', function (err) {
// If first connect fails because mongod is down, try again later.
// This is only needed for first connect, not for runtime reconnects.
// See: https://github.com/Automattic/mongoose/issues/5169
if (err.message && err.message.match(/failed to connect to server .* on first connect/)) {
console.log(new Date(), String(err));
// Wait for a bit, then try to connect again
setTimeout(function () {
console.log("Retrying first connect...");
db.openUri(dbURL).catch(() => {});
// Why the empty catch?
// Well, errors thrown by db.open() will also be passed to .on('error'),
// so we can handle them there, no need to log anything in the catch here.
// But we still need this empty catch to avoid unhandled rejections.
}, 20 * 1000);
} else {
// Some other error occurred. Log it.
console.error(new Date(), String(err));
}
});
db.once('open', function () {
console.log("Connection to db established.");
});
return db;
}
// Use it like
var db = createConnection('mongodb://...', options);
var User = db.model('User', userSchema);
рдиреЗрд╡рд▓реЗ рдХреЗ рд▓рд┐рдП <4.11 db.open()
рдмрдЬрд╛рдп db.openUri()
рдиреЗрд╡рд▓реЗ 4.11.7 рдХреЗ рд▓рд┐рдП рдпрд╣ рддрдХрдиреАрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИред
рдиреЗрд╡рд▓рд╛ 4.13.4 рдХреЗ рд▓рд┐рдП рдпрд╣ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ!
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ 2019/09/02: рдпрд╣рд╛рдВ promiseRetry
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЫреЛрдЯрд╛ рд╕рдорд╛рдзрд╛рди рднреА
рд╣рд╛рдп @ vkarpov15 рдЬрдм рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдореЛрдВрдЧреЛрдбрдм-рдХреЛрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдПрдХ рдЕрдирд╣реЗрд▓реНрдб рд░рд┐рдЬреЗрдХреНрд╢рди рднреА рд▓реЙрдЧ рдХрд░реЗрдВред
MongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]
at Pool.<anonymous> (/Users/development/okkralabs/sem-server/services/sem-access/node_modules/mongodb-core/lib/topologies/server.js:336:35)
at emitOne (events.js:116:13)
at Pool.emit (events.js:211:7)
at Connection.<anonymous> (/Users/development/okkralabs/sem-server/services/sem-access/node_modules/mongodb-core/lib/connection/pool.js:280:12)
at Object.onceWrapper (events.js:317:30)
at emitTwo (events.js:126:13)
at Connection.emit (events.js:214:7)
at Socket.<anonymous> (/Users/development/okkralabs/sem-server/services/sem-access/node_modules/mongodb-core/lib/connection/connection.js:187:49)
at Object.onceWrapper (events.js:315:30)
at emitOne (events.js:116:13)
at Socket.emit (events.js:211:7)
at emitErrorNT (internal/streams/destroy.js:64:8)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9)
рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдПрдХ рдЧреИрд░-рдЙрдкрд▓рдмреНрдз MongoDb рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
(node:2545) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): MongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]
(node:2545) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛?
@jorgearanda рдЖрдк рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдХреНрдпрд╛ рдЖрдк рдХреБрдЫ рдХреЛрдб рдирдореВрдиреЗ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
@vkarpov15 рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ @jorgecuesta рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрджреЗрд╢ рд╣реИ?
рдУрд╣, рдореЗрд░реА рдЧрд▓рддреАред рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рдЬрд┐рдердм рд╕реНрд╡рдд: рдкреВрд░реНрдг, рд╣рд╛рдБ, рд╡рд╣
рдореИрдВ рдареАрдХ рд╡реИрд╕реА рд╣реА рдЪреАрдЬрд╝ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ рдЬреИрд╕реЗ @jorgecuesta , рдореИрдВ 4.11.5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рд▓реЗрдХрд┐рди 5.0.0-rc2 рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБред рдореИрдВ createConnection рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рдореЙрдбрд▓ рдПрдХ рд╣реА рдореЛрдВрдЧреЛ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдореЛрдВрдЧреЛ рдбрд╛рдЙрди рд╣реЛрдиреЗ рдкрд░ рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ:
2018-01-07 13:05:23-05:00: [INFO] database - reusing existing connectioun for mongodb://localhost/eiss
2018-01-07 13:05:23-05:00: [INFO] database - initializing database connection to: mongodb://localhost/eiss
2018-01-07 13:05:23-05:00: [INFO] database - reusing existing connectioun for mongodb://localhost/eiss
2018-01-07 13:05:23-05:00: [ERROR] database - Mongoose connection error: MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]
Unhandled rejection MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]
at Pool.<anonymous> (/Users/bill/eiss4/js/node_modules/mongoose/node_modules/mongodb-core/lib/topologies/server.js:503:11)
at emitOne (events.js:116:13)
at Pool.emit (events.js:211:7)
at Connection.<anonymous> (/Users/bill/eiss4/js/node_modules/mongoose/node_modules/mongodb-core/lib/connection/pool.js:326:12)
at Object.onceWrapper (events.js:317:30)
at emitTwo (events.js:126:13)
at Connection.emit (events.js:214:7)
at Socket.<anonymous> (/Users/bill/eiss4/js/node_modules/mongoose/node_modules/mongodb-core/lib/connection/connection.js:245:50)
at Object.onceWrapper (events.js:315:30)
at emitOne (events.js:116:13)
at Socket.emit (events.js:211:7)
at emitErrorNT (internal/streams/destroy.js:64:8)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9)
рдореЙрдбрд▓ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЙрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдирд╛рдо рд╕реЗ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рд╡реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдиреАрдЪреЗ)ред рдЬрдм рддрдХ рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддрдм рддрдХ рдореЛрдВрдЧреЛ рдЪрд▓ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реИ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдКрдкрд░ рдФрд░ рдиреАрдЪреЗ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдареАрдХ рд╣реИ (рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд▓реЙрдЧрд┐рдВрдЧ)ред рдореБрдЭреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкрдврд╝рдиреЗ рдХрд╛ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдбреНрд░рд╛рдЗрд╡рд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИред рдореИрдВ @joeytwiddle рдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣
const allConnections = {};
module.exports = function(dbName) {
const url = 'http://localhost/' + dbName;
let conn;
log.info('initializing database connection to: ' + url);
conn = allConnections[url];
if (!conn) {
log.info('creating new connection for ' + url);
conn = mongoose.createConnection(url, {
useMongoClient: true,
autoReconnect: true,
autoIndex: false,
reconnectTries: Number.MAX_SAFE_INTEGER
});
// Log database connection events
conn.on('connected', () => log.info('Mongoose connection open to ' + url));
conn.on('error', (err) => log.error('Mongoose connection error: ' + err));
conn.on('disconnected', () => log.error('Mongoose connection disconnected'));
allConnections[url] = conn;
}
else {
log.info('reusing existing connection for ' + url);
}
return conn;
}
@raythree рдЙрдкрд░реЛрдХреНрдд рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдкрдХреЛ рдареАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ .on('error')
ред рдпрджрд┐ рдЖрдк рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╕ async/рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛
let conn;
for (let i = 0; i < numRetries; ++i) {
try {
conn = await mongoose.createConnection(uri);
break;
} catch (error) {}
}
@vkarpov15 рдЖрдкрдХреЛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдореЗрдВ рджреЗрд░реА рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд╣рдо 4.11.14 рдФрд░ 4.13.4 . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ
@jorgecuesta mongoose.connect(uri).catch(err => {})
@ vkarpov15 рдХрдиреЗрдХреНрдЯ () рд░рд┐рдЯрд░реНрди рдХрдиреЗрдХреНрд╢рди рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕рд╣реА рд╣реИ?
const connection = mongoose.connect(uri || undefined, {useMongoClient: true});
connection.once('error', (e) => {
console.error(e, 'mongoose connection error.');
});
connection.once('connected', () => {
console.log('mongoose connected');
});
5.0.0 рдореЗрдВ рд╣рдордиреЗ рдЗрд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рддрд╛рдХрд┐ mongoose.connect()
рд▓рдЧрд╛рддрд╛рд░ рдПрдХ рд╡рд╛рджрд╛ рд▓реМрдЯрд╛рдПред 4.x рдореЗрдВ рдпрд╣ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди .then()
рдФрд░ .catch()
рддрд╛рдХрд┐ рдЖрдк рдЗрд╕реЗ await
рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВ
рд╣рд╛рдп @joeytwiddleред
рдореБрдЭреЗ рд╣реЗрд░реЛрдХреВ рдореЗрдВ рддреИрдирд╛рддреА рдкрд░ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред
MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]
12 рдЬреБрд▓рд╛рдИ, 2017 рдХреЛ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рдкрд░ рдЖрдкрдиреЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб/рд╕рдорд╛рдзрд╛рди рджрд┐рдпрд╛ред рдореИрдВ рдиреЗрд╡рд▓рд╛/рдиреЛрдб рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рдирдпрд╛ рд╣реВрдБред рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХрд╛ createConnection рдлрд╝рдВрдХреНрд╢рди рдХрд┐рд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?
рдореИрдВ рдиреЗрд╡рд▓рд╛ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдБ: ^5.0.10, рдиреЛрдб: v9.4.0
рдЪрд┐рдпрд░реНрд╕
@juancarlucci рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреА рдкрд╕рдВрдж рдХреА рдХрд┐рд╕реА рднреА рдлрд╛рдЗрд▓ рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдиреЗрд╡рд▓рд╛ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрд╕реЗ рдХреЙрд▓ рдХрд░реЗрдВ рдФрд░ рдЕрдкрдиреЗ рдореЙрдбрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдореИрдВрдиреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИред
@joeytwiddle рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдЪреАрдпрд░реНрд╕ред
рдЬрдм рдореИрдВ рдореЛрдВрдЧреЛ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрддрд╛ рд╣реИ:
connection error: { MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connection 0 to localhost:27017 timed out]
at Pool.<anonymous> (/home/wasd_xyz/Desktop/test/node_modules/mongodb-core/lib/topologies/server.js:505:11)
at emitOne (events.js:116:13)
at Pool.emit (events.js:211:7)
at Connection.<anonymous> (/home/wasd_xyz/Desktop/test/node_modules/mongodb-core/lib/connection/pool.js:329:12)
at Object.onceWrapper (events.js:317:30)
at emitTwo (events.js:126:13)
at Connection.emit (events.js:214:7)
at Socket.<anonymous> (/home/wasd_xyz/Desktop/test/node_modules/mongodb-core/lib/connection/connection.js:256:10)
at Object.onceWrapper (events.js:313:30)
at emitNone (events.js:106:13)
at Socket.emit (events.js:208:7)
at Socket._onTimeout (net.js:420:8)
at ontimeout (timers.js:482:11)
at tryOnTimeout (timers.js:317:5)
at Timer.listOnTimeout (timers.js:277:5)
name: 'MongoNetworkError',
message: 'failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connection 0 to localhost:27017 timed out]' }
(node:5453) UnhandledPromiseRejectionWarning: MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connection 0 to localhost:27017 timed out]
at Pool.<anonymous> (/home/wasd_xyz/Desktop/test/node_modules/mongodb-core/lib/topologies/server.js:505:11)
at emitOne (events.js:116:13)
at Pool.emit (events.js:211:7)
at Connection.<anonymous> (/home/wasd_xyz/Desktop/test/node_modules/mongodb-core/lib/connection/pool.js:329:12)
at Object.onceWrapper (events.js:317:30)
at emitTwo (events.js:126:13)
at Connection.emit (events.js:214:7)
at Socket.<anonymous> (/home/wasd_xyz/Desktop/test/node_modules/mongodb-core/lib/connection/connection.js:256:10)
at Object.onceWrapper (events.js:313:30)
at emitNone (events.js:106:13)
at Socket.emit (events.js:208:7)
at Socket._onTimeout (net.js:420:8)
at ontimeout (timers.js:482:11)
at tryOnTimeout (timers.js:317:5)
at Timer.listOnTimeout (timers.js:277:5)
(node:5453) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:5453) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
рд╕реБрдбреЛ рд╕реЗрд╡рд╛ рдореЛрдВрдЧреЛрдбрдм рд╕реНрдерд┐рддрд┐
тЧП mongodb.service - MongoDB Database
Loaded: loaded (/etc/systemd/system/mongodb.service; enabled; vendor preset:
Active: active (running) since Sat 2018-06-23 17:13:28 IST; 13min ago
Docs: https://docs.mongodb.org/manual
Main PID: 4224 (mongod)
Tasks: 24 (limit: 4915)
CGroup: /system.slice/mongodb.service
тФФтФА4224 /usr/bin/mongod --quiet --config /etc/mongod.conf
Jun 23 17:13:28 Inspiron5370 systemd[1]: Started MongoDB Database.
@pranshuchittora рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреА MongoDB рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓ рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ? рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдкреЛрд░реНрдЯ 27017 рд╣реИред рд╕рд╛рде рд╣реА, рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдХреЗ рдмрдЬрд╛рдп 127.0.0.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ
рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдХреЗ рдмрдЬрд╛рдп рдЖрдИрдкреА рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдЬреЛ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░ рджреЗрдЧрд╛ред
let local = "mongodb://127.0.0.1:27017/XXX";
mongoose.connect(
local,
{ useNewUrlParser: true }
);
рдпрджрд┐ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкрд╣рд▓рд╛ рдкреНрд░рдпрд╛рд╕ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рд╣рдореЗрд╢рд╛ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИред
рдЖрдк рдЗрд╕реЗ рдиреАрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд╛рдпрдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЬрдм рдЖрдк рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдРрдк/рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдбреАрдмреА рдЪрд▓ рд░рд╣рд╛ рд╣реИ):
рдиреЗрд╡рд▓рд╛@5.3.16
@types/ [email protected]
@types/ [email protected]
async function waitForMongoDBStart(uri: string, timeoutMs: number) {
return new Promise( async (resolve, reject) => {
let endTime = Date.now() + timeoutMs;
while (true) {
let connectionError: Error;
function errorHandler(err: Error) {
connectionError = err;
}
mongoose.connection.once("error", errorHandler);
await mongoose.connect(uri, {
connectTimeoutMS: 5000, // This timeout applies only after connected & connection lost
useNewUrlParser: true,
useFindAndModify: false
});
// Time for error event propagation
await wait(0);
if ( ! connectionError) {
mongoose.connection.removeListener("error", errorHandler);
return resolve(); // All OK, connected
}
if (connectionError.name !== "MongoNetworkError") {
return reject(`Unable to connect mongoDB. Details: ${connectionError}`);
}
if (Date.now() > endTime) {
return reject(`Unable to connect mongoBD in ${timeoutMs} ms. Details: ${connectionError}`);
}
}
});
}
@ vkarpov15 рдпрд╣ рдмрд╣реБрдд рд╣реА рд╕реНрдкрд╖реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред https://mongoosejs.com/docs/connections.html рд╕реЗ :
connectTimeoutMS - How long the MongoDB driver will wait
before failing its initial connection attempt.
Once Mongoose has successfully connected, connectTimeoutMS is no longer relevant.
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред failed to connect to server
рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдпрд╣ рддреБрд░рдВрдд рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдпрд╣ рдореЛрдВрдЧреЛрдбреАрдмреА рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдореЗрдВ рд▓рдЧрд╛рддрд╛рд░ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ, рддреЛ рдХреБрдЫ рд╡рд┐рдХрд▓реНрдк рдЬреИрд╕реЗ reconnectOnInitialFail
рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ false
рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ vkarpov15 рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИ -
ConnectImeoutMS рдкрд╣рд▓реЗ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдмрд╛рдж рд╣реА рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ (рдкрд╣рд▓реЗ рдХрдиреЗрдХреНрд╢рди рдкрд░)
рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдбреАрдмреА рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдХрдиреЗрдХреНрд╢рди рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рддрддреНрдХрд╛рд▓
рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреА рдЧрдИ рд╣реИ)
рд╕реЛрдмред, 22 рдЬреАрдпреВ 2018 рдУ 13:03 рджрд┐рдорд┐рддреНрд░реА рдХрд┐рд░рд┐рд▓реБрдХ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рдирдкрд┐рд╕рд╛: (рдП):
рдпрджрд┐ рдпрд╣ рдореЛрдВрдЧреЛрдбреАрдмреА рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдореЗрдВ рд▓рдЧрд╛рддрд╛рд░ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ, рддреЛ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛
рдХреБрдЫ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ рдЬреИрд╕реЗ reconnectOnInitialFail рдЬреЛ рдЧрд▓рдд рд╣реЛрдЧрд╛
рдЪреВрдХ рдЬрд╛рдирд╛-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/Automattic/mongoose/issues/5169#issuecomment-449565468 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/ABY-TjgeI2UqVca050y5YY3zi6w7nMkfks5u7h-vgaJpZM4M-1ur
.
--
рд╡реЛрдЬреНрд╢рд┐рдПрдХ рдлрд╝рд┐рджреЗрд░реЗрдХ
рдореЛрдмрд╛рдЗрд▓: +48 516 661 428
рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдпрд╛рдж рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдХрдиреЗрдХреНрдЯрдЯрд╛рдЗрдордЖрдЙрдЯрдПрдордПрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдХреА рд╕реНрдерд┐рддрд┐ рдФрд░ рдУрдПрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрдиреЗрдХреНрд╢рди рдкрд░ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдмрд╛рдж ConnectTimeoutMS рдХрдм рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ?
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрдм рдореИрдВ Windows 10 рдФрд░ рдЕрд▓реНрдкрд╛рдЗрди рд▓рд┐рдирдХреНрд╕ (рд╕рдВрд╕реНрдХрд░рдг рдЕрдЬреНрдЮрд╛рдд) рдкрд░ рд╕реНрдерд╛рдиреАрдп рд╣реЛрд╕реНрдЯ mongod рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдерд╛ рддрддреНрдХрд╛рд▓ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореЛрдВрдЧреЛрдб рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдЕрднреА рд╢реБрд░реВ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред
рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг? рдХреЛрдИ рднреА?
@fider @Jokero рдореИрдВрдиреЗ рдЖрдЧреЗ рдЦреЛрд▓рд╛, рдФрд░ рдореИрдВ рд╕рд╣реА рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ, connectTimeoutMS
рдХреЗрд╡рд▓ рддрдм рддрдХ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ рдЬрдм рддрдХ рдЖрдк рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрдиреЗрдХреНрд╢рди рдирд╣реАрдВ рдмрдирд╛рддреЗ, socketTimeoutMS
рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓ рд▓реЗрддрд╛ рд╣реИред рдпрд╣рд╛рдБ MongoDB рдбреНрд░рд╛рдЗрд╡рд░ рдореЗрдВ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдХреЛрдб рд╣реИ:
connectTimeoutMS
рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реЛрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдЖрдорддреМрд░ рдкрд░ рдПрдХ DNS рддреНрд░реБрдЯрд┐ рдпрд╛ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдЕрд╕реНрд╡реАрдХреГрдд рддреНрд░реБрдЯрд┐ рдорд┐рд▓реЗрдЧреАред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ, рдПрдХ рдЯреАрд╕реАрдкреА рд╕рд░реНрд╡рд░ рдЦреЛрд▓реЗрдВ рдЬреЛ рдПрдХ рдмрдВрджрд░рдЧрд╛рд╣ рдкрд░ рд╕реБрдирддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:
const net = require('net');
const server = net.createServer();
server.listen(27055);
рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ connectTimeoutMS
рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ рд╣реИ:
const assert = require('assert');
const mongoose = require('mongoose');
mongoose.set('debug', true);
const { Schema } = mongoose;
run().then(() => console.log('done')).catch(error => console.error(error.stack));
async function run() {
await mongoose.connect('mongodb://localhost:27055', {
useNewUrlParser: true,
connectTimeoutMS: 1000,
socketTimeoutMS: 25000
});
}
$ time node gh-5169.js
MongoNetworkError: connection 0 to localhost:27055 timed out
at Socket.<anonymous> (/mongoose/node_modules/mongodb-core/lib/connection/connection.js:259:7)
at Object.onceWrapper (events.js:313:30)
at emitNone (events.js:106:13)
at Socket.emit (events.js:208:7)
at Socket._onTimeout (net.js:407:8)
at ontimeout (timers.js:475:11)
at tryOnTimeout (timers.js:310:5)
at Timer.listOnTimeout (timers.js:270:5)
real 0m2.293s
user 0m0.271s
sys 0m0.043s
$
рдХрднреА-рдХрднреА рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рдХрд╛рд░рдг, MongoDB url рдЕрд╡рд░реБрджреНрдз рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдкрдиреЗ рдиреЗрдЯрд╡рд░реНрдХ/рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реНрд░реЛрдд рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдВрдмрдВрдз рдмрдирд╛рддреЗ рд╕рдордп, (рдХрдо рд╕реЗ рдХрдо) рддреАрди рдЪреАрдЬреЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ:
рдПрдХ рдореЛрдВрдЧреЛрдбрдм рд╣реИ рдФрд░ рдХрдиреЗрдХреНрд╢рди рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ, рдпрд╛рдп!
рд╕рд░реНрд╡рд░ "рдХрдиреЗрдХреНрд╢рди рдЕрд╕реНрд╡реАрдХреГрдд" рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрд╕ рдкреЛрд░реНрдЯ рдкрд░ рдХреЛрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реБрдирдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╛ рдПрдХ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рд╣реИ рдЬреЛ рдХрдиреЗрдХреНрд╢рди рдХреЛ _рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджреЗрддрд╛ рд╣реИред (рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рддреБрд░рдВрдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлрд╝рд┐рдбрд░ рдпрд╣реА рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣рд╛ рдерд╛ред)
рд╕рд░реНрд╡рд░ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдпрд░рд╡реЙрд▓ _рдкреИрд╕реЗрд╕рд┐рд╡рд▓реА рдЧрд┐рд░рд╛ рд╣реБрдЖ_ рдкреИрдХреЗрдЯ рдпрд╛ рдЙрд╕ рдЖрдИрдкреА рдкрддреЗ рдкрд░ рдХреЛрдИ рд╕рд░реНрд╡рд░ рдирд╣реАрдВ рд╣реИред (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, vkarpov рдХрд╛ connectTimeoutMS
рдЕрдВрддрддрдГ рдЪрд╛рд▓реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред)
рддреЛ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рддрднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рджрд┐рдП рдЧрдП рд╕рдордп рдореЗрдВ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рд╕рдлрд▓рддрд╛ рдпрд╛ рд╡рд┐рдлрд▓рддрд╛ рди рд╣реЛред
рдпрд╣ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдореЗрдВ рдЖрдо рд╣реИ, рдФрд░ рдХрд┐рд╕реА рдЕрд╕рд╣рдпреЛрдЧреА рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рдмрд╛рдд рдХрд░рддреЗ рд╕рдордп рднреАред рдЖрдкрдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреА рдЕрд╕реНрд╡реАрдХреГрддрд┐ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ: "рдирд╣реАрдВ!" рддрдерд╛ .....
рдареЛрд╕ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг @joeytwiddle рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж: +1:
mongodb+srv
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реЗрдЯ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП? рдЬрдм рдореЗрд░рд╛ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реЗрдЯ рд░реЛрд▓рд┐рдВрдЧ рдкреБрдирд░рд╛рд░рдВрдн рдкрд░рд┐рджреГрд╢реНрдп (рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрдкрдбреЗрдЯ) рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдореБрдЭреЗ connect ECONNREFUSED 34.238.xxx.xxx:27017
рдЬреИрд╕реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓рдиреА рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред
@esetnik рдХреНрдпрд╛ рдЖрдк useUnifiedTopology: true
рдФрд░ Mongoose 5.7.5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рд╣рдордиреЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ #8209 рдХреА рдкрд╣рдЪрд╛рди рдХреА рд╣реИ рдЬреЛ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддреА рд╣реИред
@vkarpov15 рд╣рд╛рдБ рдореИрдВ рд╣реВрдБ! рдкрд╛рд░рд┐рддреЛрд╖рд┐рдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдПрдХреАрдХреГрдд рдЯреЛрдкреЛрд▓реЙрдЬреА рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдКрдВрдЧрд╛ рдФрд░ рдЕрдкрдиреЗ рдирд┐рд╖реНрдХрд░реНрд╖реЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реВрдВрдЧрд╛ред
рдирдорд╕реНрддреЗред рдореБрдЭреЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдареАрдХ рд╡реИрд╕реА рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ рд╣реИ?!
@fdmxfarhan рдХреГрдкрдпрд╛ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдкрд╣рд▓реА рдмрд╛рд░ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдкрд░ рдСрдЯреЛ-рд░реАрдХрдиреЗрдХреНрд╢рди рдЪрд╛рд╣рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реВрдВ:
рдиреЗрд╡рд▓реЗ рдХреЗ рд▓рд┐рдП <4.11
db.open()
рдмрдЬрд╛рдпdb.openUri()
рдиреЗрд╡рд▓реЗ 4.11.7 рдХреЗ рд▓рд┐рдП рдпрд╣ рддрдХрдиреАрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИред
рдиреЗрд╡рд▓рд╛ 4.13.4 рдХреЗ рд▓рд┐рдП рдпрд╣ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ!
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ 2019/09/02: рдпрд╣рд╛рдВ
promiseRetry
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЫреЛрдЯрд╛ рд╕рдорд╛рдзрд╛рди рднреА