ํญ์ ์ฌ์ฉํด์ผ ํ๋ ๋ช ๊ฐ์ง ์ฌ์ฉ์ ์ ์ ๊ธฐ๋ฅ์ knex์ ์ถ๊ฐํ๊ณ ์ถ์ง๋ง ์๋์ํค๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค.
๊ทธ๋ค์:
knex.selectOne
knex.selectZeroOrOne
๋จผ์ ์ํํ๋ ๋์ selectOne์ ์ ํ์ ์ ์ฉํ์ง ์๊ณ ๋์ ๋ ์ด์์ ๋ ์ฝ๋๋ฅผ ๋ค์ ๊ฐ์ ธ์ค๋ฉด ์ค๋ฅ๋ฅผ ๋ฐ์์ํต๋๋ค. ์ด๋ฅผ ํตํด ์์ฑ์๋ ํน์ ์ค๋ฅ๋ฅผ ์กฐ๊ธฐ์ ํฌ์ฐฉํ ์ ์์ต๋๋ค.
๋๋ ๋ค์๊ณผ ๊ฐ์ด ์์ํ๋ค.
knex.client.QueryBuilder.prototype.selectOne = function (columns) {
const args = new Array(arguments.length);
for (let i = 0; i < args.length; i++) {
args[i] = arguments[i];
}
this.select.apply(this, args);
this._method = 'first';
//this.limit(1);
return this;
}
๊ทธ๋ฌ๋ ๋ถ๋ช ํ ์ผ๋ง๋ ๋ง์ ๋ ์ฝ๋๊ฐ ๋ฐํ๋์๋์ง์ ๋ํ ํ์ธ์ ๊ฒฐ๊ณผ๊ฐ ๋์์จ ํ์ ๋ฐ์ํด์ผ ํฉ๋๋ค.
์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ผ๋ก ๋๋ฅผ ๊ฐ๋ฆฌ์ผ ์ฃผ์๊ฒ ์ต๋๊น?
์ฐธ๊ณ ๋ก ์ด ์ฝ๋๋ 0.12์์ ์๋ํ์ง ์์ต๋๋ค. ํด๋น ํ๋กํ ํ์
์ ์์ ํ๋ ค๋ฉด knex/lib/query/builder
์ง์ ํ์ํฉ๋๋ค.
1.0์ ๊ฒฝ์ฐ ์์์ ์ํํ๋ ค๋ ๊ฒ์ฒ๋ผ ์ฟผ๋ฆฌ ๋น๋ ์ฒด์ธ์ ์ฌ์ฉ์ ์ง์ ํ๋ ํ์ค ๋ฐฉ๋ฒ์ ์ ์ํ ๊ณํ์ด๋ฉฐ "ํํฌ"๋ฅผ ์ถ๊ฐํ๋ฉด ๊ฒฐ๊ณผ ํ ๋ณํ์ ์ฝ๊ฒ ์ค์ ํ ์ ์์ต๋๋ค.
@tgriesser ํ๋์ ์ด ๊ธฐ๋ฅ์ ๊ธฐ๋ค๋ ธ๋ค๊ฐ QueryBuilder
ํ๋กํ ํ์
์ ์์ ํ๊ธฐ ์์ํ์ต๋๋ค. ์ฟผ๋ฆฌ ๋น๋๋ฅผ ํ์ฅํ ์ ์๋ ์ธํฐํ์ด์ค๊ฐ ์์ผ๋ฉด ์ ๋ง ์ข์ ๊ฒ์
๋๋ค.
๐
@tgriesser - ์ฐ๋ฆฌ๋ 1.0์์ ์ผ๋ง๋ ๋ฉ๋ฆฌ ๋จ์ด์ ธ ์์ต๋๊น?
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@tgriesser ํ๋์ ์ด ๊ธฐ๋ฅ์ ๊ธฐ๋ค๋ ธ๋ค๊ฐ
QueryBuilder
ํ๋กํ ํ์ ์ ์์ ํ๊ธฐ ์์ํ์ต๋๋ค. ์ฟผ๋ฆฌ ๋น๋๋ฅผ ํ์ฅํ ์ ์๋ ์ธํฐํ์ด์ค๊ฐ ์์ผ๋ฉด ์ ๋ง ์ข์ ๊ฒ์ ๋๋ค.๐