1 回答

TA貢獻1784條經驗 獲得超7個贊
我不得不做出一些假設,但是您可以通過$#基于數組keys(可能在模板文字中)創建標記并使用擴展符號來展開keys和db.schema.keys數組來使代碼改變鍵的數量;看評論:
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 鍵的需要
你需要說出你想要的對象的哪一部分。如果需要,您可以通過使用解構和重命名來重新定位它:
const {Flights: schema} = require('../schema.json');
...但是您所擁有的可能更清楚?;蛘弋斎?,不要更改名稱:
const {Flights} = require('../schema.json');
...并使用Flights而不是schema. 但是,如果它引用的不是構造函數,那么將其大寫可能會造成混淆。
現在您已經顯示了 JSON,我們可以看到(至少在這個例子中)Flights是對象的唯一屬性。如果你可以依賴它,你可以這樣做:
const data = require("./schema.json");
const schema = data[Object.keys(data)[0]];
添加回答
舉報