Node.js 有可能实现统一的插入功能吗

Node.js 有可能实现统一的插入功能吗,node.js,node-mysql,Node.js,Node Mysql,我有这段代码,但在实际使用它之前,我不知道函数将接受多少个参数 function insert(...args) { return new Promise((resolve, reject) => { // ↓↓↓ - here is the problem db.query('INSERT INTO `?` VALUES(?,?,?,?,?,?);', args, (err, rows)

我有这段代码,但在实际使用它之前,我不知道函数将接受多少个参数

function insert(...args) {
    return new Promise((resolve, reject) => {
        //                               ↓↓↓ - here is the problem
        db.query('INSERT INTO `?` VALUES(?,?,?,?,?,?);', args, (err, rows) => {
            return err ? reject(err) : resolve(rows);
        });
    });
}

是否可以修改此函数以允许我插入所需数量的参数?

最简单的解决方案可能是,使用
args.length
生成适当数量的

function insert(...args) {
    return new Promise((resolve, reject) => {
        let qm = Array(args.length-1).fill('?', 0).join(',');
        let query = `INSERT INTO \`?\` VALUES(${qm});`
        db.query(query, args, (err, rows) => {
            return err ? reject(err) : resolve(rows);
        });
    });
}

但您可能应该坚持Wiktor Zychla的建议,不要尝试编写自己的查询生成器。特别是——无意冒犯——如果您需要在这一级别上提问……

编写自己的查询生成器可能会很枯燥且容易出错。取而代之的是,考虑使用现有的生成器,KNEX.JS只是一个例子。statement@AliHabibzadeh是的,但是mysql模块正确地转义了它们,这阻止了sql注入。这就是使用准备好的语句的全部意义