我一直在關注一個教程。在決議器中,特別是在user.ts 中,我無法理解user = result.raw[0]代碼行。我確實理解了它之前的邏輯。有人可以幫助我了解這里實際發生的情況嗎?
let user;
try {
// User.create({}).save()
const result = await getConnection()
.createQueryBuilder()
.insert()
.into(User)
.values({
username: options.username,
email: options.email,
password: hashedPassword,
})
.returning("*")
.execute();
user = result.raw[0];
用戶 = result.raw[0];
uj5u.com熱心網友回復:
在 ECMAScript 中,有兩種方法可以訪問物件的屬性:
obj.identifier
obj[expression]
這兩種方式的主要區別在于您可以如何指定屬性。如果使用該obj.identifier語法,則只能使用有效的 ECMAScript 識別符號。例如,您將無法訪問以0這種方式命名的屬性。此外,identifier將始終被解釋為字串,無法以Symbol這種方式訪問-keyed 屬性。
如果您使用obj[expression]語法,那么 theexpression可以是any,好吧,運算式。特別是,任何計算結果為字串、數字或Symbol.
所以,線
result.raw[0]
簡單的意思是“獲取"raw"由變數參考的物件的命名屬性result,然后獲取該"0"物件命名的屬性。
uj5u.com熱心網友回復:
實際上result.raw[0]指向插入表中的第一條記錄。
如果在表中添加如下記錄:
-- create table (
-- id serial,
-- username varchar(30),
-- password varchar(200),
-- email varchar(100)
-- );
insert into user (username, password, email) values
('user1', 'my-password', '[email protected]')
returning *;
輸出有這樣的東西:
| ID | 用戶名 | 密碼 | 電子郵件 |
|---|---|---|---|
| 1 | 用戶 1 | 我的密碼 | [email protected] |
上面的資料(資料是插入之后的)已經從資料庫中回傳并存盤在 result.raw[0]
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/335126.html
標籤:打字稿 PostgreSQL 打字机 查询生成器 打字机
上一篇:子字串不能適合正則運算式
