Solucionado (ver solução)
Solucionado
(ver solução)
20
respostas

Duvida no Ex. 7 da aula 9

Olá,

Quando dou o npm start, aparece o seguinte problema no console

alurapic@1.0.0 start /Users/Guilherme/Desktop/alurapic node server.js

consign v0.1.2 Initialized in app + ./api/foto.js + ./api/grupo.js + ./routes/foto.js + ./routes/grupo.js Servidor iniciado

/Users/Guilherme/Desktop/alurapic/node_modules/mongodb/lib/server.js:235 process.nextTick(function() { throw err; }) ^ Error: connect ECONNREFUSED 127.0.0.1:27017 at Object.exports._errnoException (util.js:890:11) at exports._exceptionWithHostPort (util.js:913:20) at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1059:14)

npm ERR! Darwin 16.3.0 npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "start" npm ERR! node v5.10.1 npm ERR! npm v3.8.3 npm ERR! code ELIFECYCLE npm ERR! alurapic@1.0.0 start: node server.js npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the alurapic@1.0.0 start script 'node server.js'. npm ERR! Make sure you have the latest version of node.js and npm installed. npm ERR! If you do, this is most likely a problem with the alurapic package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! node server.js npm ERR! You can get information on how to open an issue for this project with: npm ERR! npm bugs alurapic npm ERR! Or if that isn't available, you can get their info via: npm ERR! npm owner ls alurapic npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request: npm ERR! /Users/Guilherme/Desktop/alurapic/npm-debug.log GuilhermeMacBook:alurapic gui$

O codigo está exatamente igual o da video, aula, copiei e colei apos tentar bastante, na esperança que fosse algum problema de digitação, mas não é. =/

20 respostas

A mensagem de erro evidencia o problema:

^ Error: connect ECONNREFUSED 127.0.0.1:27017 at

Você deve estar usando uma porta já em uso ou subiu o servidor duas vezes. Verifique se você não possui nenhum serviço rodando no seu mac que use a porta 3000.

Douglas, conseguiu identificar qual é o serviço que esta usando a porta 3000?

Não sei como identificar, estava usando essa porta para o projeto..., estou fazendo os passo a passo tudo certinho, mas chegou nessa parte, comecei a enfrentar esse problema, sou novato no MAC, não sei como resolver isso.

Hum...ai complica. Tente o seguinte. Abra o arquivo server.js do projeto. Onde esta 3000 mude para 8080. Suba o servidor. Se funcionar, tem que usar 8080 no lugar de 3000. Se não funcionar volte para 3000.

Continua o mesmo erro "Error: connect ECONNREFUSED 127.0.0.1:27017 at", eu ja tinha feito isso no dia..., teve uma porta que apresentou erro diferente, quando mudei pra 27017, achei que essa mensagem dizia pra eu colocar a porta ali. Ai quando mudei também não funcionou, começou a dar erro de "socket is closed".

Ahhhh não é a porta do servidor. É o mongodb que não foi instalado ou não foi instalado corretamente. Deixe 3000 como estava.

O comando no terminal mongo funciona? Tem que rever a instalação do mongodb.

https://docs.mongodb.com/v3.0/tutorial/install-mongodb-on-os-x/

Tem tutorial para instalar via brew e manual.

Tentei instalar e diz que esta instalado, mas não linkado.., e quando tento digitar mongod, aparece umonte de informaçao que nao consegui interpretar.

GuilhermeMacBook:alurapic gui$ brew install mongodb Warning: mongodb-3.4.2 already installed, it's just not linked.

achei que o diretorio nao tava criado, ai usei o comando abaixo que tava na documentacao do mongodb GuilhermeMacBook:alurapic gui$ mkdir -p /data/db GuilhermeMacBook:alurapic gui$ mongod 2017-02-14T11:14:32.939-0200 I CONTROL [initandlisten] MongoDB starting : pid=2276 port=27017 dbpath=/data/db 64-bit host=GuilhermeMacBook.lan 2017-02-14T11:14:32.940-0200 I CONTROL [initandlisten] db version v3.2.6 2017-02-14T11:14:32.940-0200 I CONTROL [initandlisten] git version: 05552b562c7a0b3143a729aaa0838e558dc49b25 2017-02-14T11:14:32.940-0200 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2k 26 Jan 2017 2017-02-14T11:14:32.940-0200 I CONTROL [initandlisten] allocator: system 2017-02-14T11:14:32.940-0200 I CONTROL [initandlisten] modules: none 2017-02-14T11:14:32.940-0200 I CONTROL [initandlisten] build environment: 2017-02-14T11:14:32.940-0200 I CONTROL [initandlisten] distarch: x86_64 2017-02-14T11:14:32.940-0200 I CONTROL [initandlisten] target_arch: x86_64 2017-02-14T11:14:32.940-0200 I CONTROL [initandlisten] options: {} 2017-02-14T11:14:32.941-0200 I - [initandlisten] Detected data files in /data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'. 2017-02-14T11:14:32.942-0200 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=9G,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0), 2017-02-14T11:14:39.437-0200 I NETWORK [HostnameCanonicalizationWorker] Starting hostname canonicalization worker 2017-02-14T11:14:39.437-0200 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'

Parece que esta instalado sim. E o erro no projeto persiste? Se persiste, cole o código do projeto que você faz a conexão com o mongo.

OBS: você rodou o comando mongo, apenas mongo? Ele se conectou ao mongodb?

A melhor forma de instalar qualquer coisa no MAC é através do Home Brew, aliás, não vejo sentido usar um MAC sem ele instalado.

Depois pesquise como instalar o home brew em sua máquina ou se informe do que ele é capaz de fazer para ajudá-lo.

E o erro no projeto persiste? R: SIM

Se persiste, cole o código do projeto que você faz a conexão com o mongo. R:

database.js abaixo

module.exports = function(uri) {

    var mongoose = require('mongoose');

    mongoose.connect('mongodb://' + uri);

    mongoose.connection.on('connected', function() {
        console.log('Conectado ao MongoDB')
    });

    mongoose.connection.on('connected', function() {
        console.log('Conectado ao MongoDB')
    });

    mongoose.connection.on('error', function(error) {
        console.log('Erro na conexão: ' + error);
    });    
};

OBS: você rodou o comando mongo, apenas mongo? Ele se conectou ao mongodb.

R: Não intendi essa parte de "rodar" o mongodb, poderia me explicar melhor? pensei que era só baixa o mongoose, instanciar ele e usar os metodos acima pra obter a conexão..

Grato pela atenção.

No exercício obrigatório do curso, no qual menciono no curso, eu indico qual é a infraestrutura do curso. Uma delas é a instalação do MongoDB, o banco de dados usado no curso. Você não o instalou? Deve ter instalado, pelas mensagens que você postou.

O que eu quero que você execute é a instrução mongo no console e cole o que é exibido aqui para mim.

Instalei sim o mongodb. Segue abaixo o resultado do comando mongo.

MongoDB shell version: 3.2.6 connecting to: test 2017-02-14T15:07:17.688-0200 W NETWORK [thread1] Failed to connect to 127.0.0.1:27017, reason: errno:61 Connection refused 2017-02-14T15:07:17.702-0200 E QUERY [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed : connect@src/mongo/shell/mongo.js:229:14 @(connect):1:6

exception: connect failed GuilhermeMacBook:alurapic gui$

A mensagem do erro é bem clara para mim que já conheço o mongodb "reason: errno:61 Connection refused-" (conexão recusada). Sua instalação do MongoDB esta com problema.

Sugiro remover o MongoDB e seguir o tutorial para instalação no MAC que tem no exercício de infraestrura do capítulo.

Não faço a menor ideia porque ela falhou no seu MAC, infelizmente. É repetir o processo.

Repetiu? Deu certo?

Desinstalei o mongo e verifiquei, realmente desinstalou, mas depois quando tentei instalar, deu problema. Eu tentei instalar pelo homebrew, estou começando a achar que o problema é ele ?

Removendo.

GuilhermeMacBook:alurapic gui$ GuilhermeMacBook:alurapic gui$ launchctl remove homebrew.mxcl.mongodb GuilhermeMacBook:alurapic gui$ pkill -f mongod GuilhermeMacBook:alurapic gui$ brew uninstall mongodb Uninstalling /usr/local/Cellar/mongodb/3.4.2... (17 files, 261.9M) mongodb 3.2.6, 3.4.1 are still installed. Remove all versions with brew uninstall --force mongodb. GuilhermeMacBook:alurapic gui$ brew uninstall --force mongodb Uninstalling mongodb... (34 files, 525.3M) GuilhermeMacBook:alurapic gui$ mongo -bash: /usr/local/bin/mongo: No such file or directory GuilhermeMacBook:alurapic gui$ mongod -bash: /usr/local/bin/mongod: No such file or directory

E aqui é quando tento instalar de novo pelo homebew Repare que da alguns erros, pedindod para eu deletar alguns caminhos.

GuilhermeMacBook:alurapic gui$ brew install mongodb Updating Homebrew... ==> Auto-updated Homebrew! Updated 1 tap (homebrew/core). ==> Updated Formulae doxygen

Error: Could not link: /usr/local/etc/bash_completion.d/brew

Please delete these paths and run brew update. Error: Could not link: /usr/local/share/doc/homebrew

Please delete these paths and run brew update. Error: Could not link: /usr/local/share/zsh/site-functions/_brew

Please delete these paths and run brew update. Error: Could not link: /usr/local/share/man/man1/brew.1

Please delete these paths and run brew update. ==> Downloading https://homebrew.bintray.com/bottles/mongodb-3.4.2.sierra.bottle.tar.gz Already downloaded: /Users/Guilherme/Library/Caches/Homebrew/mongodb-3.4.2.sierra.bottle.tar.gz ==> Pouring mongodb-3.4.2.sierra.bottle.tar.gz ==> Caveats To have launchd start mongodb now and restart at login: brew services start mongodb Or, if you don't want/need a background service you can just run: mongod --config /usr/local/etc/mongod.conf ==> Summary /usr/local/Cellar/mongodb/3.4.2: 17 files, 261.9M GuilhermeMacBook:alurapic gui$

Grato pela atenção.

Você viu a mensagem final que o brew esta exibindo para você?

Caveats To have launchd start mongodb now and restart at login: brew services start mongodb Or, if you don't want/need a background service you can just run: mongod --config /usr/local/etc/mongod.conf

Seguiu o que ele pediu?

Li, mas não intendi o que é pra fazer.

solução!

Ele pede para você executar o comando:

 brew services start mongodb

No texto, traduzido para o português, ele diz que esse comando é necessário para que o mongodb seja inicializado como um serviço no seu sistema operacional.

Estou vendo que você esta com muita dificuldade com o MAC. Já cogitou usar a plataforma Windows? MAC é um sistema operacional que demanda do desenvolvedor um conhecimento mais técnico. É poderoso, mas o desenvolvedor precisa ter um conhecimento de shell, uma boa base de linux. Pode atrapalhar as vezes quem esta começando.

Depois que fizer o comando e reiniciar seu mac. Execute no terminal o comando mongo e cole o que é exibido para mim aqui.

Funcionou! aplicação ja esta funcionando como deveria, agradeço a atenção.

Obs: sobre optar por usar o mac, eu vou apanhar pra aprender de qualquer forma, agora que ainda sou estudante, não seria a hora certa?

Tem algum e-book ou curso pra "aprender a ter manejo com o shell? e com linux ou mac" que poderias me recomendar?

Segue abaixo o resultado do comando mongo no shell.

Last login: Thu Feb 16 18:59:42 on console GuilhermeMacBook:~ gui$ mongo MongoDB shell version v3.4.2 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.4.2 Welcome to the MongoDB shell. For interactive help, type "help". For more comprehensive documentation, see http://docs.mongodb.org/ Questions? Try the support group http://groups.google.com/group/mongodb-user Server has startup warnings: 2017-02-16T19:00:43.152-0200 I CONTROL [initandlisten] 2017-02-16T19:00:43.152-0200 I CONTROL [initandlisten] WARNING: Access control is not enabled for the database. 2017-02-16T19:00:43.152-0200 I CONTROL [initandlisten] Read and write access to data and configuration is unrestricted. 2017-02-16T19:00:43.152-0200 I CONTROL [initandlisten]

Excelente. Sobre aprender o shell, na alura tem cursos da plataforma Linux. O MAC é bem parecido. Sobre ser a hora de usar ou não o MAC, no final, é você quem vai decidir. A boa notícia é que você passou por um grande problema com sucesso.

Sucesso e bom estudo meu aluno!