TransWikia.com

Atribuir retorno de findOne para uma variavel global node Node.js

Stack Overflow em Português Asked by Eduardo Pessoa on January 24, 2021

Nao consegui fazer essa atribuição, sera que falta algo?

 global.pedido = db.collection('configuracoes').findOne({ parametro: "pedido_num"})

3 Answers

Outra forma de obter o resultado da Promise é utilizando await, porém é preciso que este comando esteja dentro de uma função assíncrona (basta marcá-la como async).

try {
    global.pedido = await db.collection('configuracoes').findOne({ parametro: "pedido_num"});
} catch (error) {
    console.error(error);
}

Answered by Allan Juan on January 24, 2021

findOne retorna uma Promise, portanto o resultado só estará pronto quando a ela for resolvida. Pode-se usado o resultado dessa forma:

db.collection('configuracoes').findOne({ parametro: "pedido_num"}, function(err, document) {
  if ( !err ) global.pedido = document;
});

Answered by BrTkCa on January 24, 2021

Você pode tentar colocar em uma função de callback destinada a encontrar algum erro, caso exista. Por exemplo:

try {
  global.pedido = db.collection('configuracoes').findOne({ parametro: "pedido_num"});
} catch (error) {
console.log('>>>>>> Error: ', error);
}

Answered by Matheus Galdino on January 24, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP