CouchApp: CouchDB рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ

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



рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рдиреЗ рдкрд╣рд▓реЗ рд╣реА NoSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХрд╛рдЙрдЪ рдбреАрдмреА рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣рд╛рдВ рдореИрдВ CouchDB рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рдорд╣рд╛рди рдЕрд╡рд╕рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕реЗ CouchApp рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред







CouchApp рдХрд╛ рд╡рд░реНрдгрди CouchDB рдкреБрд╕реНрддрдХ рд╕рд╛рдЗрдЯ рдкрд░ "рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ HTML5 рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рд╕реАрдзреЗ CDBDB рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ"ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ HTML рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рджреА рдЧрдИ рд╣реИ, рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рд╕ рддрд░рд╣ рдХрд╛ HTML рд╕рд░реНрд╡рд░ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рд╛рдЗрдЯ рдХреА рдпреЛрдЬрдирд╛ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдереЛрдбрд╝рд╛ рдмреЗрд╣рддрд░ рдмрддрд╛рддреА рд╣реИ:



Browser (UI and links between pages)

-------------- HTTP ---------------

CouchDB (persistence, business logic, and templating)







CouchDB рдПрдХ рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╣реИ (рдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ)ред рдпрд╣ JSON рдлреЙрд░реНрдореЗрдЯ рдореЗрдВ рд░рд┐рд╕реНрдЯ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдХреЗ рд░рд┐рдЬрд▓реНрдЯреНрд╕ рдХреЗ рдЕрдкрдиреЗ рдлрдВрдХреНрд╢рди рдХреЛ рдкрд░рдлреЙрд░реНрдо рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рднреА рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХрд╛ рдореБрдЦреНрдп рддрд░реАрдХрд╛ рд╣реИ (рдбреЗрдЯрд╛ рдХреЛ CRUD рдСрдкрд░реЗрд╢рдВрд╕ рд╕реЗ рд▓реЗрдХрд░ рдЦреБрдж рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдиреЗ рдФрд░ рдбрд┐рд▓реАрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдмреАрдЪ рдХрд╛ рдбреЗрдЯрд╛ рдХреНрд░рдорд╢рдГ HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддрд╛ рд╣реИ, рдХреБрдЫ рднреА рдЗрд╕реЗ HTML рднреЗрдЬрдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╕ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдмрддрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред



CouchDB рдореЗрдВ рдПрдХ рдЖрд╡реЗрджрди рдПрдХ "рдбрд┐рдЬрд╛рдЗрди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝" рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдЪреВрдБрдХрд┐ CouchDB рдореЗрдВ рдбреЗрдЯрд╛ рд╕рд╣рд┐рдд рд╕рдм рдХреБрдЫ рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╣рд▓рд╛рддрд╛ рд╣реИ рдФрд░ JSON рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИред рдмреЗрд╢рдХ, рдЗрд╕реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХреЗ рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрд░рдЪрдирд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╣реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рд╣реЛрддрд╛ рд╣реИред



рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЖрдзрд╛рд░ рджрд╕реНрддрд╛рд╡реЗрдЬ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

{

"_id" : "my_doc" ,

"_rev" : "1-7a8b01193c8798fa555243b354d1e9d7"

}






рдбрд┐рдЬрд╝рд╛рдЗрди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдлреЙрд░реНрдо рдореЗрдВ _design/app_name



рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: _design/app_name



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



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



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



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



рдЕрдм рд╕рдм рдХреБрдЫ рдЕрднреНрдпрд╛рд╕ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред



рд╢реБрд░реБрдЖрдд



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



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



рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХрд╛рд░реНрдб рдХреЗ рдПрдХ рд╕реЗрдЯ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

{

"_id": "my set",

"_rev": "1-7a8b01193c8798fa555243b354d1e9d6",

"type": "set",

"cards": [

{

"front": "front_text",

"back": "back_text"

},

{

"front": "front_text second",

"back": "back_text second"

}

]

}






"_id" - рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛, рд╕рдорд╡рд░реНрддреА рд░реВрдк рд╕реЗ рдЙрд╕рдХрд╛ рдирд╛рдо (рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП)

"_rev" рд╕реЗрдЯ рдХреА рд╕рдВрд╢реЛрдзрди рд╕рдВрдЦреНрдпрд╛ рд╣реИред рдХрд┐рд╕реА рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреЛ рд╕рд╣реЗрдЬрддреЗ рдпрд╛ рдмрдирд╛рддреЗ рд╕рдордп рдЗрд╕реЗ рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдлрд┐рд░ рдпрд╣ рдЕрдкрдиреЗ рдЖрдк рднрд░ рдЬрд╛рдПрдЧрд╛ред



рдлрд╝реАрд▓реНрдб "_id" рдФрд░ "_rev" рдХрд┐рд╕реА рднреА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдЖрд╡рд╢реНрдпрдХ рдЧреБрдг рд╣реИрдВред



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

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



рдирдпрд╛ рд╕реЗрдЯ рдмрдирд╛рдиреЗ рдпрд╛ рдореМрдЬреВрджрд╛ рд╕реЗрдЯ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рдПрдХ рдкреЗрдЬ рдмрдирд╛рдПрдВред



рдкреЗрдЬ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ



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



рд╢реЛ рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдЬреЗрдПрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВ рдФрд░ рд╢реЛ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬрдм рд╣рдо http: //// _ design / flashcards / _show / edit / рдФрд░ http: //// _ design / flashcards / _show / edit / <document_id> рдкрддреЗ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ "рд╕рдВрдкрд╛рджрди" рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред



рд╣рдорд╛рд░реЗ рдкреЗрдЬ рдХреЗ рд▓рд┐рдП file \ show \ edit.js рдХрд╛ рдХреЛрдб:

function (doc, req) {

//!json shows._edit



var Mustache = require( "vendor/couchapp/lib/mustache" ),

path = require( "vendor/couchapp/lib/path" ).init(req);



var data = {

assets : path.asset(),

indexPath : path.list( 'sets' , 'all-sets' , {descending: true , limit:10})

};



data.doc = doc || {};



return Mustache.to_html(shows._edit, data);

}








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



рдЗрд╕рдХреЗ рдмрд╛рдж рдПрдХ рдЯрд┐рдкреНрдкрдгреА рд╣реИ, рдЬреЛ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдореИрдХреНрд░реЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ) рдХреЗ рд▓рд┐рдП рдПрдХ рдХреВрдкрд┐рдХ рдирд┐рд░реНрджреЗрд╢ рд╣реИ, рдЬреЛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╢реЛ \ _edit рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред * рдЪрд░ "show._edit" рдХреЗ рд▓рд┐рдПред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ _edit рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд╡рд┐рд╕реНрддрд╛рд░ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, _edit.html рдлрд╝рд╛рдЗрд▓ рд╡рд╣рд╛рдБ рд╣реЛрдЧреА, рдЬрд┐рд╕рдореЗрдВ рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рдкреГрд╖реНрда рдХрд╛ рдХреЛрдб рд╣реИред рд╣рдо рдмрд╛рдж рдореЗрдВ рдЗрд╕ рдкрд░ рд▓реМрдЯреЗрдВрдЧреЗред



рдЕрдЧрд▓рд╛ рджреЛ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЖрдпрд╛рдд рд╣реИред CouchDB рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдорди рдЬреЗрдЬреЗрдПрд╕ рд╕рдореНрдореЗрд▓рди рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдпрд╛рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ Node.s рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ Node.js рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдФрд░ рдЙрдкрд▓рдмреНрдз рдХрд╛рд░реНрдпреЛрдВ рдкрд░ CouchDB рдореЗрдВ рдХреЛрдИ рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рдвреВрдВрдв рд╕рдХрд╛ред рдореБрдЭреЗ CouchDB рдХреЗ рдХреЛрдб рдХреЛ рджреЗрдЦрдирд╛ рдерд╛ рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд╕рдордЭрдирд╛ рдерд╛ред



рдкрд╣рд▓рд╛ рдореЙрдбреНрдпреВрд▓ рдореВрдВрдЫ рд╣реИ, рдЬреЛ рд╕рдм рдХреБрдЫ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рд╣рдореЗрдВ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рд╣рдо рдЙрд╕ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде html рдкреЗрдЬ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░реЗрдВред рджреВрд╕рд░рд╛ рдПрдХ рдорд╛рд░реНрдЧ рд╣реИ, рдЬреЛ рд╣рдореЗрдВ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдЕрдиреНрдп рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП js рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ (рдХреБрдЫ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЖрд░рдВрдн рд╣реЛрдиреЗ рдкрд░ рдХреВрдкреЗрдХ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдФрд░ рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ)ред



рдЕрдЧрд▓рд╛, рдПрдХ рдореЙрдбрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ (рдПрдорд╡реАрд╕реА рдкреИрдЯрд░реНрди рд╕реЗ) рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдВрдкрддреНрддрд┐ рдХреНрд╖реЗрддреНрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ url рдЙрдкрд╕рд░реНрдЧ рд╣реИ рдЬрд╣рд╛рдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░рдЦреА рдЬрд╛рддреА рд╣реИрдВ, indexPath рд╣рдорд╛рд░реЗ рд╕реЗрдЯ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдкреГрд╖реНрда рдХрд╛ URL рд╣реИред рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛, рд╕реВрдЪреА рдХрд╛рд░реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдмрд╛рдж рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред .List рд╡рд┐рдзрд┐ рд╕реЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рджреЗрдЧрд╛, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ, рдСрд▓-рд╕реЗрдЯ рд╡реНрдпреВ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░реЗрдЧрд╛ред



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



рд╕реЗрдЯ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдкреГрд╖реНрда рдХреЗ HTML рдХреЛрдб рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛:

< form id = "new-post" method = "post" >

{{#doc}}

< label > Set name < / label > < input type = "text" size = "20" name = "_id" value = "{{_id}}" >

< ul class = "cards" >

{{#cards}}

< li >

< label > Front < / label > < input type = "text" size = "20" name = "front" value = "{{front}}" >

< label > Back < / label > < input type = "text" size = "20" name = "back" value = "{{back}}" >

< / li >

{{/cards}}



< li >

< label > Front < / label > < input type = "text" size = "20" name = "front" >

< label > Back < / label > < input type = "text" size = "20" name = "back" >

< / li >

< / ul >



< button id = "add" > Add < / button >< br / >< br / >

{{/doc}}



< input type = "submit" value = "Save &rarr;" / >

< span id = "saved" style = "display:none;" > Saved < / span >

< br / >< br / >

< / form >






рдХреБрдЫ рдЦрд╛рд╕ рдирд╣реАрдВред рд╕рднреА рдореВрдВрдЫреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ред



рдлреЙрд░реНрдо рджрд┐рдЦрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдм рд╣рдореЗрдВ рдлреЙрд░реНрдо рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд╛рд░реНрдб рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП JSON рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд╕рд╛рде POST рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкреГрд╖реНрда рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ: /_utils/script/jquery.js рдФрд░ /_utils/script/jquery.couch.jsред рдкрд╣рд▓рд╛ jQuery рд╣реИ, рджреВрд╕рд░рд╛ jQuery рдкреНрд▓рдЧрдЗрди рд╣реИ рдЬреЛ CouchDB рдХреЗ рд▓рд┐рдП рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЖрдпреЛрдЬрди рдХрд░рддрд╛ рд╣реИред



рдЕрдм рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ:

( function ( $ ) {

$ ( '#new-post' ) . submit ( function ( ) {

var self = $ ( this ) , setName = $ ( 'input[name=_id]' , this ) . val ( ) ,

oldSet , newSet = { } , db = $. couch . db ( 'flashcards' ) ;



function saveDoc ( set ) {

db. saveDoc ( set ) , {

success : function ( resp ) {

window. location . reload ( true ) ;

}

} ) ;

}



//collect cards array

newSet. cards = $ ( 'ul.cards input' ) . toArray ( ) . reduce ( function ( arr , el , idx ) {

if ( ! ( idx % 2 ) ) { arr [ arr. length ] = { } ; }

arr [ arr. length - 1 ] [ ! ( idx % 2 ) ? "front" : "back" ] = el. value ;



return arr ;

} , [ ] ) ;



//retrieve old set if found or create new

db. openDoc ( setName , {

error : function ( code ) {

oldSet = { } ;

if ( setName. length ) {

oldSet._id = setName ;

}

saveDoc ( $. extend ( oldSet , newSet ) ;



} ,

success : function ( response ) {

oldSet = response ;

saveDoc ( $. extend ( oldSet , newSet ) ;

}

} ) ;



return false ;

} ) ;

} ) ( jQuery ) ;






рдпрд╣рд╛рдБ рдореБрдЦреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрдЪрд╛рд▓рди рд╣реИрдВ:

1. var db = $. couch . db ( 'flashcards' )



var db = $. couch . db ( 'flashcards' )



var db = $. couch . db ( 'flashcards' )



- рд╕реЗрд╡, рдУрдкрди рдЖрджрд┐ рдХреЙрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред

2. db. openDoc ( id , callback )



db. openDoc ( id , callback )



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

3. db. saveDoc ( doc , callback )



db. saveDoc ( doc , callback )



- рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВред рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдкреГрд╖реНрда рдкреБрдирдГ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдорд╛рдорд▓рд╛ рдЬрдм рдХреБрдЫ рдЧрд▓рдд рд╣реБрдЖ, рдФрд░ рдпрд╣ рддрдм рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдПрдХ рдкреБрд░рд╛рдирд╛ рд╕рдВрд╢реЛрдзрди рднреЗрдЬрд╛ рдЧрдпрд╛ рдерд╛, рдореИрдВ рдирд╣реАрдВ рдорд╛рдирддрд╛ред



рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдорд╛рдирдЪрд┐рддреНрд░ рд╕реЗрдЯ рдмрдирд╛рдиреЗ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдкреВрд░реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИред рд╕реЗрдЯ рдХреА рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред



рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рди



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



рджреГрд╢реНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрд░ рд▓рд╛рдЧреВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЗрд╕ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреГрд╢реНрдп рдореЗрдВ рдорд╛рдирдЪрд┐рддреНрд░ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрдо рд╣реЛрддреЗ рд╣реИрдВред рд╕рднреА рд╕реЗрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд╝рдВрдХреНрд╢рди \ views \ all-sets \ map.js (рд╕рднреА-рд╕реЗрдЯ рдХреЛ рджреГрд╢реНрдп рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛) рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:

function ( doc ) {

if ( doc. type === 'set' && doc. cards ) {

emit ( doc._id , null ) ;

}

}






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



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



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

function ( head , req ) {

// !json lists._sets



var Mustache = require ( "vendor/couchapp/lib/mustache" ) ,

path = require ( "vendor/couchapp/lib/path" ) . init ( req ) ;



provides ( 'html' , function ( ) {

var data = {

assets : path. asset ( ) ,

createNewLink : path. show ( 'edit' )

} ;



data. sets = ( function ( ) {

var row , set , arr = [ ] ;

while ( row = getRow ( ) ) {

set = row. value ;

arr. push ( {

title : row. id ,

showView : path. show ( 'set' , row. id ) ,

editLink : path. show ( 'edit' , row. id ) ,

runsetLink : path. asset ( 'flashcards_zeptojs.html' ) + '#' + row. id

} ) ;

}

return arr ;

} ) ( ) ;



return Mustache. to_html ( lists._sets , data ) ;

} ) ;

}






рд╢реЛ рдлрд╝рдВрдХреНрд╢рди рдХреА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ (content_type, callback) рдлрд╝рдВрдХреНрд╢рди рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЬреЛ рдЕрдиреБрд░реЛрдз рдХреЗ рдХрдВрдЯреЗрдВрдЯ-рдЯрд╛рдЗрдк рдФрд░ getRow () рдореИрдЪ рд╕реЗ рдХреЙрд▓рдмреИрдХ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рджреГрд╢реНрдп рд╕реЗ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рддрд╛рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП url рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: http: //// _ рдбрд┐рдЬрд╛рдЗрди / рдлреНрд▓реИрд╢рдХрд╛рд░реНрдб / _list / рд╕реЗрдЯ / <рджреГрд╢реНрдп-рдирд╛рдо> ?. рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдореБрдЦреНрдп рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рджреГрд╢реНрдп рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ req рдореЗрдВ рдХрдИ HTTP рдЕрдиреБрд░реЛрдз рдкреИрд░рд╛рдореАрдЯрд░ рд▓рд┐рдЦреЗ рдЬрд╛рдПрдВрдЧреЗред рдмрд╛рдХреА рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рд╢реЛ рдлрд╝рдВрдХреНрд╢рди - рд╣рдо рдЯреЗрдореНрдкрд▓реЗрдЯ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рд╡рд╣рд╛рдВ рдкрд░рд┐рдгрд╛рдореА рдореЙрдбрд▓ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдкрд░рд┐рдгрд╛рдо рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВред



рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ, рдХрд╛рд░реНрдб рдХреЗ рд╕реЗрдЯ рдХреЗ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдФрд░ рд░рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рджреЛ рдкреГрд╖реНрда рдереЗ, рд▓реЗрдХрд┐рди рд╡реЗ рдмрд┐рд▓реНрдХреБрд▓ рддреБрдЪреНрдЫ рд╣реИрдВ рдФрд░ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдПрдХ рд╣реА рд╕реЗрдЯ рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред



рдпрд╣ рд╢рд╛рдпрдж рд╡рд╣ рд╕рдм рд╣реИ рдЬреЛ рдореИрдВ CouchApp рдХреА рд╕рдордЭ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдордЭрддрд╛ рд╣реВрдВред рдлрд┐рд░ рдЖрдк рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рд▓реЗрдЦрди рдХреА рдУрд░ рдореБрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рд╕рд╛рд░реНрдердХ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рдирд┐рд╖реНрдХрд░реНрд╖



CouchApp рдХреЗ рд╕рд╛рде CouchDB рд╕реАрдЦрдиреЗ рдХреЗ рдЕрдиреБрднрд╡ рдХреЗ рдЕрд╡рд╢реЗрд╖ рдХреНрдпрд╛ рд╣реИрдВ:



1. рдмрд╣реБрдд рд▓реАрдХ рджрд╕реНрддрд╛рд╡реЗрдЬред

CouchDB рдмреБрдХ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЙрдирдХреЗ рджреЛ рд╕рдВрд╕реНрдХрд░рдг - 1.0 рдФрд░ рдбреНрд░рд╛рдлреНрдЯ, рджреЛрдиреЛрдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбреЛрдореЗрди рдореЗрдВ рд╣реИрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдореВрд▓ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди couchApp рдХрд╛ рд╡рд░реНрдгрди рдмрд╣реБрдд рдЧрдбрд╝рдмрдбрд╝ рд╣реИ рдФрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рд╣реИред рдХреИрд╕реЗ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреА рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рддрд╕реНрд╡реАрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд╡рд┐рднрд┐рдиреНрди рдмреНрд▓реЙрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рд╕реЗ рдЧреБрдЬрд░рдирд╛ рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреВрд░реА рдХрд┐рддрд╛рдм рдХреЛ рдкрдврд╝рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╕рдордЭ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП 300 рдкреГрд╖реНрдареЛрдВ рдХреЛ рдкрдврд╝рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд▓рдЧрддрд╛ рд╣реИред рджреВрд╕рд░реА рдУрд░, рдЫреЛрдЯреЗ рд╣реЗрд▓реЛрд╡рд░реНрд▓реНрдб рд▓реЗрдЦ рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓ рдкрд╡рд┐рддреНрд░ рд╢рд┐рд▓рд╛рд▓реЗрдЦ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЧрд╣рд░рд╛рдИ рддрдХ рдирд╣реАрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдмрд╣реБрдд рдХрдо рд▓рд╛рдн рд╣реИред



рдордЬреЗрджрд╛рд░ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдХрд╛рдЙрдЪ рдПрдк рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдкреАрдЖрдИ рд╡рд┐рд╡рд░рдг рдХреА рдХрдореА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдкреАрдЖрдИ рдХрд╛ рд╕рдВрджрд░реНрдн рдпрд╛ рддреЛ couchone.com , wiki.apache.org/couchdb , рдпрд╛ couchapp.org рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдирд╣реАрдВ рдорд┐рд▓рд╛ ред



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



рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рдЖрдкреВрд░реНрддрд┐ рдХреА рдЧрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдХреА рдХрдореА рд╣реИред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ рдХрд╣рд╛рдВ рд╣реИрдВ (рдореБрдЭреЗ рддреБрд░рдВрдд рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рд╣реБрдЖ рдХрд┐ рдХреБрдЫ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреВрдкреЗрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдФрд░ рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд░реНрд╡рд░ рдкрд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрд╣рд╛рдВ рдореБрдЭреЗ рдЕрднреА рднреА рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдерд╛) рдЙрдирдХреЗ рдкрд╛рд╕ рдХреНрдпрд╛ рдПрдкреАрдЖрдИ рд╣реИ рдФрд░ рд╡реЗ рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, CouchDB рдиреЗрддреГрддреНрд╡ рдХреА рдкрддреНрдиреА рдХреЗ рдмреНрд▓реЙрдЧ рдкрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ (рдПрдХ рд╕рд╛рджреЗ js, рдЕрдиреНрдп jquery- рдЖрдзрд╛рд░рд┐рдд) рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдХрд╛ рд╡рд░реНрдгрди рд╣реИ, рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдЕрдЬрд╛рдХреНрд╕-рдкреНрд░рд╢реНрди рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реЛрдлрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╣рд╛рдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрдирдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реБрдП, рд▓реЗрдХрд┐рди рдЬреЛ рдХрд┐рд╕реА рдХрд╛рд░рдгрд╡рд╢ рдкрд╣рд▓реЗ рдЕрдиреБрд░реЛрдз рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рдВрдкреВрд░реНрдг рдбрд┐рдЬрд╛рдЗрди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрд╕рд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдпреВрдЖрд░рдПрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдФрд░ рдбрд┐рдЬрд╝рд╛рдЗрди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рдЖрдХрд╛рд░, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдореЗрд░реЗ рдЫреЛрдЯреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рднреА, рд▓рдЧрднрдЧ 1 рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рд╣реИред



рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкреНрд░рд▓реЗрдЦрди рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЧрдВрднреАрд░ рдЫрд╛рддреНрд░ рдбрд┐рдкреНрд▓реЛрдорд╛ рд╕реЗ рднрд░реА рд╣реБрдИ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдЙрддреНрдкрд╛рдж рдирд╣реАрдВ рд╣реИ, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдЙрддреНрдкрд╛рдж рдЧрдВрднреАрд░ рд╣реИред



2. рд╕реБрд░рдХреНрд╖рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВред

рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдмрд┐рд▓реНрдХреБрд▓ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд╡реЗрд░реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдбреЗрдЯрд╛рдмреЗрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдирд┐рд╖рд┐рджреНрдз рд╣реИред рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ CouchApp рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рднреАрддрд░ рдШреВрдо рд░рд╣рд╛ рд╣реИ, рддреЛ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ CouchApp рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ, рддреЛ рдЙрд╕рдХреЗ рдкрд╛рд╕ рд╕рднреА рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рддрдХ рдкреВрд░реА рдкрд╣реБрдВрдЪ рд╣реИред рдФрд░ рдЕрдЧрд░ рд▓реЗрдЦрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд╕реНрддрд░ рдкрд░ рдирд┐рд╖рд┐рджреНрдз рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдкрдврд╝рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдХреЛрдИ рднреА рдЕрдзрд┐рдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЕрдиреБрд░реЛрдз / _all_docs рдмрдирд╛рдиреЗ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рднреА-рд╕рднреА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред



рдЖрдк рд╢рд╛рдпрдж рдЗрд╕реЗ рдЕрдкрд╛рдЪреЗ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдкреЗрдВрдЪ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдЖрдк рд╕рднреА рдЕрдирд╛рд╡рд╢реНрдпрдХ URL рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕реБрдВрджрд░ рдпреВрдЖрд░рдПрд▓ рдХреЗ рдкреНрд░рд╢реНрди рдХреЛ рд╣рд▓ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ / _lists / рд╕реЗрдЯ / ... рдкрд░ рдирд╣реАрдВ рдЬрд╛рдирд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рд╣реА couchapp.org рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред



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



рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рдерд╛ред



All Articles