如何从 Function() 调用中的参数 JSON 返回 RegExp.$ 参数?

我正在尝试将一组参数从 JSON 文件返回到 RegExp.$(又名 JS 的 f 字符串)。


const schema = require('../schema.json').Flights;

class flightRepo{

    keys = Object.keys(schema);


    create(db) {    

        return client.query(

            "INSERT INTO flights ($1, $2, $3, $4, $5, $6) VALUES ($7, $8, $9, $10, $11, $12)",

            keys[0], keys[1], keys[2], keys[3], keys[4], keys[5],

            db.schema.keys[0], db.schema.keys[1], db.schema.keys[2], db.schema.keys[3], db.schema.keys[4], db.schema.keys[5]

        );

    }

}

关于

client.query:来自 Deno 的 PostgreSQL Lib

数据库的客户端对象:传递列表 [args[0-5] for each key] 以创建新的数据库

条目


JSON 结构


{

    "Flights" : {

        "FlightNo": "INT PRIMARY KEY",

        "Airlines": "STRING 50",

        "Time": "DATETIME",

        "OnTime": "BOOLEAN",

        "Dep": "STRING 4",

        "Arr": "STRING 4"

    }

}

我想要做的是消除手动指定 n 个参数 (keys[0-5]) 和 ($1-12) 的需要,而是创建一个表达式来为任何 x-item 键列表执行此操作。


(也很高兴知道一种方法来消除在 Ln.1 中输入“Flights”JSON 键的需要)


aluckdog
浏览 87回答 1
1回答

噜噜哒

我不得不做出一些假设,但是您可以通过$#基于数组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]];
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript