рдпрд╣ рд▓реЗрдЦ Node.js рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП Mongoose ODM рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдкреИрдЯрд░реНрди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдЧрд╛ред
Mongoose ODM рдЯреВрд▓реНрд╕ - рдПрдХ LINQ- рд╢реИрд▓реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ MongoDB рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЖрд╡рд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдиреАрдЪреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП UserRepo рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╡рд┐рд╡рд░рдг
- UserRepo рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╕рдордп, mongoose рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛ рдкрд╣рд▓реЗ рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
- рдЕрдЧрд▓рд╛, mongoose.model ('рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛') рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ; рдореЙрдбрд▓ рдХреЛ рдЖрдзрд╛рд░ рдкрд░ рдореИрдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ UserModel рдирд╛рдордХ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдИ рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рдореЙрдбрд▓ рдлрд╝рдВрдХреНрд╢рди рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗрдВ рдЬреЛ рдЖрдкрдХреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдХреНрд╡реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ, рд╣рдо Select рдФрд░ SelectOne рдХреЛ рдЕрд▓рдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬрдм рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдХреНрд╡реЗрд░реА рдХрд╛ рдкреНрд░рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдФрд░, рдХреНрдпрд╛ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ, рдЗрд╕ рд╕рдордп рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд╡реЗрд░реА рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рддрдереНрдп рдЖрдкрдХреЛ рдмреИрдЪреЛрдВ рдореЗрдВ рдПрдХ рдЕрдиреБрд░реЛрдз рдмрдирд╛рдиреЗ рдФрд░ рд╕рд╣реА рд╕рдордп рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
- IsExistsLogin рд╡рд┐рдзрд┐ рдореЗрдВ, рдЖрдк SelectOne () рд╡рд┐рдзрд┐ рдФрд░ рдмрд╛рдж рдХреА рдкреАрдврд╝реА рдФрд░ рдЕрдиреБрд░реЛрдз рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд╛ рдПрдХ рджреГрд╢реНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдореВрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЙрджрд╛рд╣рд░рдг
- рдлрд╝рдВрдХреНрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд░рд┐рдкреНрдкреЛ ( рдорд╛рдирдЧреЛ ) {
- var рд╡рд╣ = рдпрд╣ ;
- рдХрд┐ред UserModel = рдЖрдоред рдореЙрдбрд▓ ( 'рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛' ) ;
- рдХрд┐ред IsExistsLogin = function ( рд▓реЙрдЧрд┐рди , cb ) {
- рдХрд┐ред SelectOne ( ) ред рдЬрд╣рд╛рдВ ( 'рд▓реЙрдЧрд┐рди' , рд▓реЙрдЧрд┐рди ) ред рд░рди ( рдлрд╝рдВрдХреНрд╢рди ( рддреНрд░реБрдЯрд┐ , рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ ) {
- рд╕реАрдмреА ( рдЧрд▓рдд , рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ ) ;
- } ;
- } ;
- рдХрд┐ред рд╕рд╣реЗрдЬреЗрдВ = рдлрд╝рдВрдХреНрд╢рди ( рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ , рд╕реАрдмреА ) {
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ред рдмрдЪрд╛рдУ ( рдлрд╝рдВрдХреНрд╢рди ( )) {
- cb ( рдЗрд░реЗрдЯ ) ;
- } ;
- } ;
- рдХрд┐ред рд╣рдЯрд╛рдПрдВ = рдлрд╝рдВрдХреНрд╢рди ( рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ , рд╕реАрдмреА ) {
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ред рдирд┐рдХрд╛рд▓реЗрдВ ( рдлрд╝рдВрдХреНрд╢рди ( рдЗрд░рд┐рдЯреЗрд╢рди ))
- cb ( рдЗрд░реЗрдЯ ) ;
- } ;
- } ;
- рдХрд┐ред рдЪрдпрди = рдлрд╝рдВрдХреНрд╢рди ( ) {
- рд╡рд╣ рд▓реМрдЯрд╛рдУ ред UserModelред рдорд┐рд▓ ( { } ) ;
- } ;
- рдХрд┐ред SelectOne = function ( ) {
- рд╡рд╣ рд▓реМрдЯрд╛рдУ ред UserModelред findOne ( { } ) ;
- } ;
- }
- рдирд┐рд░реНрдпрд╛рддред UserRepo = UserRepo ;
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рдореЙрдбрд▓ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдЖрдк рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ IsExistsLogin рд╡рд┐рдзрд┐ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- userRepoред IsExistsLogin ( reqBodyред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо , рдлрд╝рдВрдХреНрд╢рди ( рдЗрд░реЗрдЯреА , рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ ) {
- рдЕрдЧрд░ ( рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ ) {
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ред рдИрдореЗрд▓ = reqBodyред userMail ;
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ред рдкрд╛рд╕рд╡рд░реНрдб = reqBodyред userPasswd ;
- }
- рдЕрдЧрд▓рд╛ ( рдЗрд░реЗрдЯ , рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ ) ;
- } ;
рдирд┐рд╖реНрдХрд░реНрд╖
рдпрд╣ рдореВрд▓ рднрдВрдбрд╛рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЧреНрд░рд╛рд╣рдХ рдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рдкреВрд░рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред