Estoy tratando de usar PouchDB para almacenar algunos datos de usuario simples y quiero crear una función que devuelva un documento predeterminado si ese usuario aún no existe en la base de datos. Afortunadamente, PouchDB muestra dicha función en su guía en línea, lo que muestran es:
db.get('config').catch(function (err) { if (err.name === 'not_found') { return { _id: 'config', background: 'blue', foreground: 'white', sparkly: 'false' }; } else { // hm, some other error throw err; } }).then(function (configDoc) { // sweet, here is our configDoc }).catch(function (err) { // handle any errors });Luego traté de poner esto en mi propia función que se veía así:
async function getEntry(user) { await db.get(user).catch((err) => { if (err.name === 'not_found') { return { _id: user.id, user: user, data: { counting: { score: 0, fails: 0, highestCounted: 0, }, birthday: "DD/MM/YY" } } else { throw err } }).then((doc) => { return doc; }) } Sin embargo, cuando llamo a esta función, todo lo que obtengo es undefined y no sé qué está pasando;
getEntry({id: "1234"}).then(doc => { console.log(doc); }).catch(err => { console.log(err); } // returns undefined Cuando reemplazo la función devuelve con console.log() , registra correctamente el objeto defaultDoc , por lo que sé que obtener el documento predeterminado no es un problema.
¿Puede alguien explicar por qué esta función no funciona y cómo puedo modificarla para obtener la funcionalidad deseada? Muchas gracias :)