1 回答

TA貢獻(xiàn)1784條經(jīng)驗 獲得超7個贊
我不得不做出一些假設(shè),但是您可以通過$#基于數(shù)組keys(可能在模板文字中)創(chuàng)建標(biāo)記并使用擴展符號來展開keys和db.schema.keys數(shù)組來使代碼改變鍵的數(shù)量;看評論:
const schema = require('../schema.json').Flights;
class flightRepo {
// ^?????????????????????????????? the convention is to capitalize this F
keys = Object.keys(schema);
create(db) {
return client.query(
`INSERT INTO flights (${keys.map((_, i) => `${i + 1}`)}) VALUES (${keys.map((_, i) => `${i + 1 + keys.length}`)})`,
...keys,
...db.schema.keys // Assumes `db.schema.keys` is known to have the same length as `keys`
);
}
}
也很高興知道一種方法來消除在 Ln.1 中輸入“Flights”JSON 鍵的需要
你需要說出你想要的對象的哪一部分。如果需要,您可以通過使用解構(gòu)和重命名來重新定位它:
const {Flights: schema} = require('../schema.json');
...但是您所擁有的可能更清楚?;蛘弋?dāng)然,不要更改名稱:
const {Flights} = require('../schema.json');
...并使用Flights而不是schema. 但是,如果它引用的不是構(gòu)造函數(shù),那么將其大寫可能會造成混淆。
現(xiàn)在您已經(jīng)顯示了 JSON,我們可以看到(至少在這個例子中)Flights是對象的唯一屬性。如果你可以依賴它,你可以這樣做:
const data = require("./schema.json");
const schema = data[Object.keys(data)[0]];
添加回答
舉報