Este título em si é uma proposta, porque, por padrão, cada módulo em um aplicativo Node.js é compartilhado com a mesma conexão de banco de dados. Mas se a postura estiver errada, pode ser feia e pode até dar errado.
Você pode ignorar a parte a seguir e chegar ao ponto.
fundo
Recentemente, estou fazendo design de cursos profissionais, o título é "sistema de gerenciamento de reservas de ingressos aéreos". O requisito é relativamente simples, então tentei usar o node.js que estava aprendendo recentemente. Eu também estava investigando que tipo de estrutura de node.js é mais adequada. Depois de ler algumas estruturas, descobri que isso é um assassino. Se você tiver tempo para ler os documentos e as informações de pesquisa, é melhor escrevê -las diretamente. Finalmente, depois de escrever, colocarei o código no Github. Todos são convidados a criticar e me corrigir.
Em termos de banco de dados, pensei que estava mais familiarizado e gostei do JSON (admito se não aprendi bem o SQL -_-#), então escolhi o MongoDB. O Node + Mongo é uma combinação de back -end cada vez mais popular nos últimos anos, e há muitas informações sobre como usá -lo juntas na Internet. Mas, para economizar tempo (o design do curso é de apenas mais de uma semana) e se concentrar mais no sistema e na lógica, usei o Mongoose, uma extensão Node.js usada especialmente para modelagem de dados do MongoDB, para reduzir bastante o código que opera o banco de dados.
Tópico principal
Eu estabeleci dois modelos de dados, um é o usuário (usuário) e o outro é o vôo (voo), que é encapsulado nos dois módulos (módulos) do user.js, Flight.js. O modelo é especificamente responsável por interagir com o banco de dados. Os módulos do usuário e do vôo precisam se conectar ao banco de dados. No começo, meu código era o seguinte:
// ------ User.js ------ // requer mongoose.js referência mongOose.jsvar m = requer ('mongOose'); // conecta-se ao banco de dados conectado ao banco de dados M.Connect ('MONGODB: // localhost/teste'); // algum outro código ... requer ('mongoose'); // conecta-se ao banco de dados conectado ao banco de dados m.connect ('mongodb: // localhost/teste'); // ... algum outro código ... // ----- models.js ----- var user = requer ('./ user'), vôo = requer ('.Sem mencionar que este método de escrita não está seco, esse método em si está errado. Quando eu executo index.js, recebo o seguinte erro.
> Node Index.js> Erro de conexão: {[Erro: Tentando abrir a conexão não usada.] Estado: 2}O erro é: tente abrir uma conexão não usada.
Portanto, devemos nos conectar ao banco de dados uma vez em um só lugar e, em seguida, outros módulos que precisam se conectar ao banco de dados interagem com o banco de dados através deste módulo. Era como uma prancha de fiação, e ele gritou sem hesitar: "Existe apenas um soquete na parede, não roube! Deixe -me ir! Você ... tudo bem!"
Plano específico
Colocamos a ação de conectar -se ao banco de dados em um módulo e expor a conexão com outros módulos em todo o aplicativo e, em seguida, outros módulos que precisam se conectar ao banco de dados podem se referir a essa conexão.
// ----- Database.js ----- var m = requer ('mongOose'); m.connect ('mongodb: // localhost/teste'); // referência à conexão do banco de dados Crie uma referência para esta conexão var db = m.connection; // expõe a modula que requer dados de dados.js expõe essa referência a outros modelos a outros a outros, que expostos a outros modelos; ----- User.js ----- Flight.js similar ------/... algum outro código ... // Passaremos a referência da conexão do banco de dados como um parâmetro em models.js module.exports = function (db) {if (db) {// ... faça coisas com a conexão ... se você conectar ao dado- Recupere a referência à conexão do banco de dados Consulte a conexão do banco de dados var db = require ('./ banco de dados'); // Passe a referência para a conexão do banco de dados no módulo que precisa se conectar ao banco de dados e a tarefa é concluída! var user = requer ('./ usuário') (db), vôo = requer ('./ vôo') (db);Esta é uma maneira de obter vários módulos de um aplicativo Node.js para compartilhar conexões de banco de dados. Eu vi isso no Stackoverflow. Se você tiver uma maneira melhor, compartilhe -o com você nos comentários!