Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Qual a melhor maneira de armazenar um array de objetos para futuras requisições ajax -nodejs

No node qual seria a melhor maneira para armazenar um array de objetos? O que eu consegui fazer no momento foi colocar o array de objetos dentro da própria rota:

var frases = [
    {_id: 0, texto:'Alura, Cursos online de tecnologia que reinventam sua carreira.', tempo: 15 },
    {_id: 1, texto:'Debuggers não consertam erros, apenas os exibem em slow motion.',tempo: 8 },
    {_id: 2, texto:'Caelum, Ensino e Inovação.', tempo: 5 }

];

module.exports = function (app) {
  app.get('/frases', function (req, res) {
    res.send(frases);
  });
}

Mas acho que essa não seria a melhor maneira de fazer isso. Vou fazer requisições ajax usando jquery para esse array. Podem me ajudar? Obrigado

3 respostas

Oi Lucas,

pensando apenas em separação de responsabilidades, eu colocaria essa lista em um outro módulo e importaria ela nas rotas.

Outro ponto a se pensar é em relação a persistência desses dados. Se você pretende futuramente adicionar objetos nessa lista dinamicamente e quer manter esses objetos mesmo se o processo do node for fechado, acho uma boa já pensar em armazenar essa lista em algum banco de dados.

Oi Artur! Obrigado pela Ajuda! Pode me dar um exemplo de como a rota pode exportar de outro modulo? Obrigado

solução

Opa, posso sim

Se você tiver um módulo frases, você poderia importar ele no arquivo das rotas usando a função require:

var frases = require('./frases')

module.exports = function (app) {
  app.get('/frases', function (req, res) {
    res.send(frases);
  });
}

Aí num arquivo frases.js você criaria a alista e exportaria ela:

var frases = [
    {_id: 0, texto:'Alura, Cursos online de tecnologia que reinventam sua carreira.', tempo: 15 },
    {_id: 1, texto:'Debuggers não consertam erros, apenas os exibem em slow motion.',tempo: 8 },
    {_id: 2, texto:'Caelum, Ensino e Inovação.', tempo: 5 }

];

module.exports = frases