рдореИрдВ рддреЛ () рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдкрдиреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред
рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ (рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдкрдХрдбрд╝реА рдЧрдИ рд╣реИ)ред
рдХреНрдпрд╛ рдХреЛрдИ рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХрд╣рд╛рдВ рдЧрд▓рдд рд╣реВрдВ?
рдзрдиреНрдпрд╡рд╛рдж
рдПрдордПрди
var рд╡рд╛рджрд╛ = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рдмреНрд▓реВрдмрд░реНрдб');
var Knex = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('knex');
Knex.knex = Knex.initialize ({
рдЧреНрд░рд╛рд╣рдХ: 'pg',
рдХрдиреЗрдХреНрд╢рди: {
тАж
},
рдбрд┐рдмрдЧ: рд╕рдЪ
};
var knex = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('knex')ред knex;
knex.schema.createTable ('рд╡рд┐рднрд╛рдЧ', рдлрд╝рдВрдХреНрд╢рди (рддрд╛рд▓рд┐рдХрд╛) {
table.increments ('department_id')ред рдкреНрд░рд╛рдердорд┐рдХ ()ред рдиреЛрдЯ рдХрд░рдиреЗ рдпреЛрдЧреНрдп () рдирд╣реАрдВ;
table.string ('Department_name', 80) .unique ()ред notNullable ();
table.string ('building_name', 40);
})ред рддрдм (рдлрдВрдХреНрд╢рди () {
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ ('рдбрд┐рдкрд╛рд░реНрдЯрдореЗрдВрдЯ рдЯреЗрдмрд▓ рдмрдирд╛рдИ рдЧрдИ рд╣реИ');
knex ('рд╡рд┐рднрд╛рдЧ') рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВред
[{рд╡рд┐рднрд╛рдЧ_рдирд╛рдо: 'рдиреИрдиреЛ рдЯреЗрдХреНрдиреЛрд▓реЙрдЬреА', рдмрд┐рд▓реНрдбрд┐рдВрдЧ_рдирд╛рдо: 'рдмреНрд▓реЙрдХ-рдП'},
{рд╡рд┐рднрд╛рдЧ_рдирд╛рдо: 'рдореИрдХреЗрдирд┐рдХрд▓ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ', рднрд╡рди_рдирд╛рдо: 'рдмреНрд▓реЙрдХ-рд╕реА'}],
'Department_id'
);
})ред рддрдм (рдлрд╝рдВрдХреНрд╢рди () {
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ ('рд╡рд┐рднрд╛рдЧ рд╕рдореНрдорд┐рд▓рд┐рдд');
})ред catch (рдлрдВрдХреНрд╢рди (e) {
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ (рдИ);
};
рдЖрдкрдХреЛ return
рдЕрдкрдирд╛ knex
рд╕рдореНрдорд┐рд▓рд┐рдд рд╡рд┐рд╡рд░рдг рджреЗрдирд╛ рд╣реЛрдЧрд╛, рдпрд╛ рдЗрд╕рдореЗрдВ рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ ( then
рдпрд╛ catch
/ caught
) рдЕрдиреНрдпрдерд╛ рдЖрдк рд╕рд┐рд░реНрдл builder
рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрд╡реЗрд░реА рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЬрдм рдЖрдк insert
, select
, from
рдЖрджрд┐ рдЬреИрд╕реЗ рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ - рдореВрд▓ рд░реВрдк рд╕реЗ рдХреНрд╡реЗрд░реА рдмрд┐рд▓реНрдбрд░ рдкрд░ рд╣рд░ рд╡рд┐рдзрд┐ - рдпрд╣ рдХреЗрд╡рд▓ рдЗрд╕рдХреА рдЖрдВрддрд░рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрд╡реЗрд░реА рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред ред рдпрд╣ рдХреЗрд╡рд▓ рддрдм рд╣реЛрдЧрд╛ рдЬрдм рдЖрдк then
, catch
/ caught
, lastly
/ finally
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ tap
рдпрд╛ exec
, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рддрдм рд╡рд╛рд╕реНрддрд╡рд┐рдХ Promise
рдкреИрджрд╛ рдХрд░реЗрдЧрд╛, рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдХреНрд╡реЗрд░реА рднреЗрдЬрддрд╛ рд╣реИред
рдХреНрдиреЗрдХреНрд╕ рдФрд░ рдмреБрдХрд╢реЗрд▓реНрдлрд╝ рдорд╣рд╛рди рд╣реИрдВред рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж
16 рдЬрдирд╡рд░реА 2014 рдХреЛ 13:17 рдкрд░, рдЬреЛрд╣рд╛рдиреНрд╕ рд▓реБрдореНрдкреЗ рдиреЗ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @ithub.com рд▓рд┐рдЦрд╛:
рдЖрдкрдХреЛ рдпрд╛ рддреЛ рдЕрдкрдиреЗ knex рдЗрдиреНрд╕рд░реНрдЯ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рд╣реИ, рдпрд╛ рдЗрд╕рдореЗрдВ рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝рдирд╛ рд╣реИ (рддрдм рддрдХ рдпрд╛ рдХреИрдЪ / рдХреИрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ), рдЕрдиреНрдпрдерд╛ рдЖрдк рд╕рд┐рд░реНрдл рдПрдХ рдмрд┐рд▓реНрдбрд░ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрд╡реЗрд░реА рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЬрдм рдЖрдк рдЗрдиреНрд╕рд░реНрдЯ, рд╕реЗрд▓реЗрдХреНрдЯ, рдбрд┐рдХреЗрдЯ рдЬреИрд╕реА рд╡рд┐рдзрд┐рдпрд╛рдБ рдХрд╣рддреЗ рд╣реИрдВред - рдХреНрд╡реЗрд░реА рдмрд┐рд▓реНрдбрд░ рдкрд░ рдореВрд▓ рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ - рдпрд╣ рдХреЗрд╡рд▓ рдЗрд╕рдХреА рдЖрдВрддрд░рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрд╡реЗрд░реА рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдпрд╣ рддрднреА рд╣реЛрдЧрд╛ рдЬрдм рдЖрдк рдПрдХ рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ рдЬреЛрдбрд╝реЗрдВрдЧреЗ, рдкрдХрдбрд╝реЗрдВрдЧреЗ / рдкрдХрдбрд╝реЗ рдЬрд╛рдПрдВрдЧреЗ, рдЕрдВрддрд┐рдо / рдЕрдВрдд рдореЗрдВ, рдЯреИрдк рдпрд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рдмрд╛рдж рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░реЛрдорд┐рд╕ рдмрдиреЗрдЧрд╛, рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдХреНрд╡реЗрд░реА рднреЗрдЬрддрд╛ рд╣реИред
-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВред
рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЖрдкрдХреЛ
return
рдЕрдкрдирд╛knex
рд╕рдореНрдорд┐рд▓рд┐рдд рд╡рд┐рд╡рд░рдг рджреЗрдирд╛ рд╣реЛрдЧрд╛, рдпрд╛ рдЗрд╕рдореЗрдВ рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ (then
рдпрд╛catch
/caught
) рдЕрдиреНрдпрдерд╛ рдЖрдк рд╕рд┐рд░реНрдлbuilder
рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрд╡реЗрд░реА рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЬрдм рдЖрдкinsert
,select
,from
рдЖрджрд┐ рдЬреИрд╕реЗ рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ - рдореВрд▓ рд░реВрдк рд╕реЗ рдХреНрд╡реЗрд░реА рдмрд┐рд▓реНрдбрд░ рдкрд░ рд╣рд░ рд╡рд┐рдзрд┐ - рдпрд╣ рдХреЗрд╡рд▓ рдЗрд╕рдХреА рдЖрдВрддрд░рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрд╡реЗрд░реА рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред ред рдпрд╣ рдХреЗрд╡рд▓ рддрдм рд╣реЛрдЧрд╛ рдЬрдм рдЖрдкthen
,catch
/caught
,lastly
/finally
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВtap
рдпрд╛exec
, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рддрдм рд╡рд╛рд╕реНрддрд╡рд┐рдХPromise
рдкреИрджрд╛ рдХрд░реЗрдЧрд╛, рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдХреНрд╡реЗрд░реА рднреЗрдЬрддрд╛ рд╣реИред