É possivel conectar um banco Mysql usando javascript com node.js?

3,360 views
Skip to first unread message

Wander Cleiton

unread,
Aug 18, 2011, 10:19:12 AM8/18/11
to NodeJS Brasil
Ola colegas! Olha sou novo aqui e também na linguagem javascript minha
dúvida é: Javascript é uma linguagem client-side, e que em tese não
acessa banco de dados, mas com o nó é possível conectar-se a um banco?
E se for como seria isso? Ou ele é mais apropriado como servido de
requisição? Desculpa se estiver perguntando alguma asneira, pois não
tenho muito conhecimento técnico na área, sou mais um curioso.

AJ Alves

unread,
Aug 18, 2011, 10:28:42 AM8/18/11
to nod...@googlegroups.com
com certeza Wander:

de uma olhada em: https://github.com/felixge/node-mysql/

só tome cuidado com consultas ou queres sequênciais, elas devem ficar aninhadas. Ou seja, as que dependem de outras, devem ficar dentro do callback da anterior.

valeu!
--

Rael Max

unread,
Aug 18, 2011, 10:28:43 AM8/18/11
to nod...@googlegroups.com
Na wiki[1] do node.js no github fala-se bastante sobre bancos de dados. Dê uma olhada.

Em 18 de agosto de 2011 11:19, Wander Cleiton <profission...@gmail.com> escreveu:



--
Rael Max
Desenvolvedor Web.
<contato at raelmax.com>

Wander Cleiton

unread,
Aug 18, 2011, 10:38:18 AM8/18/11
to NodeJS Brasil
Obrigado pelo esclarecimento! Vou testar agora mesmo!

Lucas Carvalho

unread,
Aug 20, 2011, 7:14:42 AM8/20/11
to nod...@googlegroups.com
e com mongo alguém já usou?

AJ Alves

unread,
Aug 20, 2011, 7:51:08 AM8/20/11
to nod...@googlegroups.com
Com o mongo é possivel também!!!

Dá uma olhada em :

http://mongoosejs.com/

e

https://github.com/christkv/node-mongodb-native

a primeira opção achei melhor, além de ser mais fácil!

Lucas Carvalho

unread,
Aug 20, 2011, 10:39:48 AM8/20/11
to nod...@googlegroups.com

Henrique Gogó

unread,
Aug 20, 2011, 6:01:49 PM8/20/11
to nod...@googlegroups.com
Eu tenho uma dúvida em relação à utilização de Node.js com bancos não-NoSQL (não-no é osso hehe).

O Node.js é monothread, certo? E quando alguém estiver acessando o banco MySQL, por exemplo, o banco vai 'parar' a aplicação enquanto finaliza a operação, certo? Será que isso não acaba sendo ruim? Com um banco NoSQL como CouchDB que é append only, e as operações de leitura e escrita não interferem nas operações de outros usuários, compreendo que não há problemas. Mas num banco que gera locks, por exemplo, não caga o pau?

Obrigado aí.

Emerson Macedo

unread,
Aug 20, 2011, 6:11:36 PM8/20/11
to nod...@googlegroups.com
Henrique,

acho que você se confundiu um pouco sobre o modelo assíncrono do Node e sobre bancos de dados em geral.

Em primeiro lugar, o fato do banco se NoSQL não significa que não existem locks. O MongoDB por exemplo tem locks em diversos momentos. Você pode conferir isso no link abaixo:


Além disso, no modelo que o Node trabalha, toda operação de I/O de disco ou Rede a tarefa é jogada para o Thread Pool juntamente com o Reactor (a grosso modo é o callback, mas to simplificando muuuuuito, só pra não alongar nesse ponto). Isso faz com que mesmo sendo uma tarefa demorada o Event Loop consiga ficar livre para atender outras requisições.

Sendo assim, tanto faz ser NoSQL ou RDBMS. O que importa é que a biblioteca node para o banco trabalhe em favor do Event Loop.

Abraços,

2011/8/20 Henrique Gogó <henriq...@gmail.com>



--
Emerson Macedo
http://codificando.com

Henrique Gogó

unread,
Aug 20, 2011, 6:34:38 PM8/20/11
to nod...@googlegroups.com
Só.

Era o que eu precisava entender. Valeu.

William Dias

unread,
Aug 20, 2011, 7:37:04 PM8/20/11
to nod...@googlegroups.com
Pode crer Emerson, tua explicação respondeu algumas dúvidas que eu tinha sobre o assunto. Valeu!
--
William Régis Drawanz Dias
HTML/JavaScript Developer at Conrad-Caine GmbH
BSc Student of Computer Science at UFPel

AJ Alves

unread,
Aug 21, 2011, 6:16:21 PM8/21/11
to nod...@googlegroups.com
é isso mesmo! Como o emerdon falou!

Então, tanto é, que. Qndo se vai fazer operações dependendes ou (transações "relacionais") no mysql ou mongodb, toda dependencia é feita dentro do callback da query anterior, tudo fica aninhado. para que tudo seja executado em sequência.

E lembrem-se que não temos theads em javascript mas temos nossa boa setInterval(); que é se bem usada, desdobra e ajuda muito!
Reply all
Reply to author
Forward
0 new messages