Alterar dados na função de retorno de chamada do mangusto antes de enviá-los com resposta

xhaferl

Estou usando o pacote mongoose para extrair dados do MongoDB (usando cb) e enviar ao navegador. Uma das propriedades que estou puxando é um objeto de data, tento alterar esse objeto de data para uma String antes de passar para o arquivo HTML, porém não é reatribuído. Alguma razão para quê?

Tentei reatribuir a um Date () diferente e isso reatribui a variável. As regras de esquema ainda se aplicam ao acessar / alterar dados no retorno de chamada? Como posso alterar essa variável para uma string que representa uma data?

function index(req, res, next) {
    Flight.find({},function(err, flights){
        flights.forEach(function(flight){
            flight.departs = 'any string';
            console.log(flight.departs);
        })
        res.render('flights/index', {flightDocs: flights, title: 'Flights', moment});
    })
}

O console mostra isso - são os objetos de data originalmente no banco de dados.

2020-11-17T23:56:00.000Z
2019-11-17T22:01:00.000Z
2019-11-17T23:05:00.000Z
2019-11-17T22:03:00.000Z
2020-11-18T00:01:00.000Z
2020-11-18T00:01:00.000Z
Hoangdv

flighté um modelo de mangusto, não um objeto normal, então eu acho, quando você chamar flight.departsgetter do modelo será chamado para retornar o valor deles.

Você converteu um modelo em um objeto json e, em seguida, edite o novo objeto json, se desejar.

function index(req, res, next) {
  Flight.find({}, function (err, flights) {
    const flightsResult = flights.map(function (flight) {
      const json = flight.toJson(); // convert doc to json object
      json.departs = 'any string'; // update json property
      console.log(flight.departs);
      return json;
    });
    res.render('flights/index', { flightDocs: flightsResult, title: 'Flights', moment });
  })
}

Ou apenas diga ao Mongoose que tudo o que você precisa é uma versão JavaScript simples do documento retornado usando lean () na cadeia de consulta.

function index(req, res, next) {
  Flight.find({}).lean().exec(function (err, flights) {
    flights.forEach(function (flight) {
      flight.departs = 'any string';
      console.log(flight.departs);
    })
    res.render('flights/index', { flightDocs: flights, title: 'Flights', moment });
  })
}

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Acesse os dados de resposta da função de retorno de chamada de sucesso do ajax

Passando a função de retorno de chamada para a função agregada do mangusto

Firefox WebExtensions envia mensagem do navegador para a extensão e obtém resposta na função de retorno de chamada

Como esperar que a chamada assíncrona do banco de dados seja resolvida antes de prosseguir com a função para alterar o DOM?

Como definir o estado em componentDidMount com base na resposta de um retorno de chamada

Problema de resposta com retorno de chamada

Alterar os dados vue do retorno de chamada da promessa

Imagem de rastreamento de beacon com resposta 204 e função de retorno de chamada

Valide os dados do formulário antes de enviar e com base na chamada de validação de outra função usando javascript

O retorno de dados da função js não chega na função de chamada

retorno de chamada não invocado na resposta

Como alterar o valor json em um retorno de chamada aninhado (mangusto)

Retorno de função assíncrona antes do objeto com dados construídos

Função de retorno de chamada do Ajax Handler: o objeto de resposta é indefinido

É possível alterar o retorno de chamada do URL de mensagens com a API do Twilio?

É possível alterar o retorno de chamada do URL de mensagens com a API do Twilio?

Retorno de chamada na tabela de dados

Existe uma maneira de modificar os dados do formulário que serão enviados ao servidor antes de enviá-los?

É possível alterar o tipo de retorno de uma função chamada com novo

Função de sucesso angular chamada antes do retorno da função http.get

Como compactar a resposta http do Symfony4 com gzip antes de enviá-la?

Transação de banco de dados com retorno de chamada

Função com retorno de chamada

Redução de tipo de retorno de chamada de evento com base na chave do evento

jquery $ .post com a API do Twitter funciona, mas a função de retorno de chamada não está retornando dados

Alterar o valor do modelo da função de retorno de chamada

Como chamar o mangusto no modo de bloqueio dentro do retorno de chamada expressjs?

Laravel Manipula os dados do usuário antes de enviá-los para a sessão quando o usuário logar

Os dados são uma variável reservada na função de retorno de chamada getJSON ()?

TOP lista

  1. 1

    R Shiny: use HTML em funções (como textInput, checkboxGroupInput)

  2. 2

    O Chromium e o Firefox exibem as cores de maneira diferente e não sei qual deles está fazendo certo

  3. 3

    Como assinar digitalmente um documento PDF com assinatura e texto visíveis usando Java

  4. 4

    R Folheto. Dados de pontos de grupo em células para resumir muitos pontos de dados

  5. 5

    Gerenciar recurso shake de Windows Aero com barra de título personalizado

  6. 6

    Como obter dados API adequados para o aplicativo angular?

  7. 7

    UITextView não está exibindo texto longo

  8. 8

    Por que meus intervalos de confiança de 95% da minha regressão multivariada estão sendo plotados como uma linha de loess?

  9. 9

    Acessando relatório de campanhas na AdMob usando a API do Adsense

  10. 10

    Usando o plug-in Platform.js do Google

  11. 11

    Como posso modificar esse algoritmo de linha de visada para aceitar raios que passam pelos cantos?

  12. 12

    Dependência circular de diálogo personalizado

  13. 13

    Coloque uma caixa de texto HTML em uma imagem em uma posição fixa para site para desktop e celular

  14. 14

    iOS: como adicionar sombra projetada e sombra de traço no UIView?

  15. 15

    Como usar a caixa de diálogo de seleção de nomes com VBA para enviar e-mail para mais de um destinatário?

  16. 16

    Tabela CSS: barra de rolagem para a primeira coluna e largura automática para a coluna restante

  17. 17

    How to create dynamic navigation menu select from database using Codeigniter?

  18. 18

    Converter valores de linha SQL em colunas

  19. 19

    ChartJS, várias linhas no rótulo do gráfico de barras

  20. 20

    用@StyleableRes注释的getStyledAttributes。禁止警告

  21. 21

    não é possível adicionar dependência para com.google.android.gms.tasks.OnSuccessListener

quentelabel

Arquivo