Knex: Knex.js ๋ฐ Postgres์—์„œ then () ์‚ฌ์šฉ์— ๊ด€ํ•œ ์งˆ๋ฌธ

์— ๋งŒ๋“  2014๋…„ 01์›” 16์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: knex/knex

then ()์„ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ด๋ธ” ์ƒ์„ฑ๊ณผ ํ–‰ ์‚ฝ์ž…์„ ์—ฐ๊ฒฐํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.
ํ…Œ์ด๋ธ”์ด ์ƒ์„ฑ๋˜์—ˆ์ง€๋งŒ ์‚ฝ์ž…์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ).
๋ˆ„๊ตฐ๊ฐ€ ๋‚ด๊ฐ€ ์–ด๋””์—์„œ ์ž˜๋ชป๋˜์—ˆ๋Š”์ง€ ๋งํ•ด ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐ์‚ฌ
MN

var Promise = require ( 'bluebird');
var Knex = require ( 'knex');
Knex.knex = Knex.initialize ({
ํด๋ผ์ด์–ธํŠธ : 'pg',
์—ฐ๊ฒฐ : {
โ€ฆ
},
๋””๋ฒ„๊ทธ : ์ฐธ
});
var knex = require ( 'knex'). knex;
knex.schema.createTable ( 'department', function (table) {
table.increments ( 'department_id'). primary (). notNullable ();
table.string ( 'department_name', 80) .unique (). notNullable ();
table.string ( '๊ฑด๋ฌผ _ ์ด๋ฆ„', 40);
}). then (function () {
console.log ( '๋ถ€์„œ ํ…Œ์ด๋ธ”์ด ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค');
knex ( 'department'). insert (
[{department_name : 'Nano Technology', building_name : 'block-A'},
{department_name : '๊ธฐ๊ณ„ ๊ณตํ•™', building_name : 'block-C'}],
'department_id'
);
}). then (function () {
console.log ( '๋ถ€์„œ๊ฐ€ ์‚ฝ์ž… ๋จ');
}). catch (function (e) {
console.log (e);
});

question

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

return knex ์‚ฝ์ž… ๋ฌธ ๋˜๋Š” ์—ฌ๊ธฐ์— ์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค ( then ๋˜๋Š” catch / caught ). ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด builder ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค์ง€ ๋งŒ ์‹ค์ œ๋กœ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. insert , select , from ๋“ฑ๊ณผ ๊ฐ™์€ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœ ํ•  ๋•Œ-๊ธฐ๋ณธ์ ์œผ๋กœ ์ฟผ๋ฆฌ ์ž‘์„ฑ๊ธฐ์˜ ๋ชจ๋“  ๋ฉ”์„œ๋“œ-๋‚ด๋ถ€ ์ƒํƒœ ๋งŒ ์ˆ˜์ •ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. . ์ด๋Š” then , catch / caught , lastly / finally ์‚ฌ์šฉํ•˜์—ฌ ์ธ์Šคํ„ด์Šค์— ํ•˜๋‚˜ ์ด์ƒ์˜ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ถ”๊ฐ€ ํ•  ๋•Œ๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. tap ๋˜๋Š” exec . ๊ทธ๋Ÿฌ๋ฉด ์ฟผ๋ฆฌ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํด๋ผ์ด์–ธํŠธ๋กœ ๋ณด๋‚ด๋Š” ์‹ค์ œ Promise ์ƒ์„ฑ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  3 ๋Œ“๊ธ€

return knex ์‚ฝ์ž… ๋ฌธ ๋˜๋Š” ์—ฌ๊ธฐ์— ์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค ( then ๋˜๋Š” catch / caught ). ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด builder ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค์ง€ ๋งŒ ์‹ค์ œ๋กœ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. insert , select , from ๋“ฑ๊ณผ ๊ฐ™์€ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœ ํ•  ๋•Œ-๊ธฐ๋ณธ์ ์œผ๋กœ ์ฟผ๋ฆฌ ์ž‘์„ฑ๊ธฐ์˜ ๋ชจ๋“  ๋ฉ”์„œ๋“œ-๋‚ด๋ถ€ ์ƒํƒœ ๋งŒ ์ˆ˜์ •ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. . ์ด๋Š” then , catch / caught , lastly / finally ์‚ฌ์šฉํ•˜์—ฌ ์ธ์Šคํ„ด์Šค์— ํ•˜๋‚˜ ์ด์ƒ์˜ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ถ”๊ฐ€ ํ•  ๋•Œ๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. tap ๋˜๋Š” exec . ๊ทธ๋Ÿฌ๋ฉด ์ฟผ๋ฆฌ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํด๋ผ์ด์–ธํŠธ๋กœ ๋ณด๋‚ด๋Š” ์‹ค์ œ Promise ์ƒ์„ฑ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

Knex์™€ Bookshelf๋Š” ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค. ๊ณ ๋งˆ์›Œ

  • MN

2014 ๋…„ 1 ์›” 16 ์ผ 13:17์— Johannes Lumpe [email protected] ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

knex insert ๋ฌธ์„ ๋ฐ˜ํ™˜ํ•˜๊ฑฐ๋‚˜ ์—ฌ๊ธฐ์— ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค (then ๋˜๋Š” catch / catch ์‚ฌ์šฉ). ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋นŒ๋” ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. insert, select, frometc์™€ ๊ฐ™์€ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœ ํ•  ๋•Œ. -๊ธฐ๋ณธ์ ์œผ๋กœ ์ฟผ๋ฆฌ ์ž‘์„ฑ๊ธฐ์˜ ๋ชจ๋“  ๋ฉ”์„œ๋“œ-๋‚ด๋ถ€ ์ƒํƒœ ๋งŒ ์ˆ˜์ •ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” then, catch / caught, lastly / finally, tap ๋˜๋Š” exec๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์Šคํ„ด์Šค์— ํ•˜๋‚˜ ์ด์ƒ์˜ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ถ”๊ฐ€ ํ•  ๋•Œ๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํด๋ผ์ด์–ธํŠธ์— ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋‚ด๋Š” ์‹ค์ œ Promise๊ฐ€ ์ƒ์„ฑ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

โ€”
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.

์ฒœ๋งŒ์—์š”!

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰