Node.js sqlite3 IN 运算符

Node.js sqlite3 IN operator

所以我目前正在尝试在 Node.js 中进行查询:

// friends is an array object
db.all('SELECT email ' +
       'FROM users' +
       'WHERE email in ?', friends, function(err, rows) {
           if (!err) {

我知道您可以为每个“?”传递一个参数数组符号,但在这种情况下是否可以使用 IN 运算符?如果不是,我应该进行字符串连接还是准备语句?

db.all('SELECT email ' +
       'FROM users' +
       'WHERE email in ( ' + friends.map(function(){ return '?' }).join(',') + ' )', 
       friends, 
       function(err, rows) {
           if (!err) {

asbel 的出色回答略有不同:

db.all(
    `SELECT email FROM users WHERE email in (${ friends.fill('?') })`, 
    friends, 
    callback
);

// friends is an array object
db.all(`SELECT email FROM users WHERE email in ${ friends.map(() => "?").join(",") }`,
    friends, (err, rows) => {
    if (!err) {}
})