Согласно сообщению об ошибке, req.login(updatedUser);
ожидает обратный вызов в качестве второго аргумента.По сути, вы бы сделали что-то вроде этого:
req.login(updatedUser, function(err, data) {
// handle err and data
});
Однако, поскольку вы хотите await
для этой асинхронной операции, вам нужно что-то, что возвращает обещание.По сути, вы можете ожидать любого значения, которое является обещанием (а login
не возвращает его.
Вы можете построить обещание вокруг этого вызова следующим образом:
await new Promise(function(res, rej) {
req.login(updatedUser, function(err, data) {
if (err) rej(err);
else res(data);
});
})
Узел.JS поставляется с вспомогательной функцией с именем promisify , которая поможет создать такое поведение, если вы не хотите делать это каждый раз вручную.