是否可以实现统一的插入功能



所以我有这段代码,但在实际使用之前,我不知道这个函数需要多少参数

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的建议,不要试图编写自己的查询生成器。特别是——无意冒犯——如果你需要问这个级别的问题。。。

最新更新