Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

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!