重现

if (err || account.length === 0) {
    callback(err);
}
  
callback(null, account[0]);

Error: Callback was already called.

原因

Add else statement to you code, because if you get error, your callback executes twice.

不能2次callback。虽然本意是第一个callback之后直接return。但是async还是会继续踏实的执行完本函数。

解决

if (err || account.length === 0) {
  callback(err);
} else {
  callback(null, account[0]);
}

也可以这样:

if (err || account.length === 0) {
  return callback(err);
}
  
callback(null, account[0]);