Um nó total noob aqui. Eu tenho tentado configurar um aplicativo de nó de amostra, mas o erro a seguir aparece sempre que tento executar:
aplicativo de nó
Failed to load c++ bson extension, using pure JS version
events.js:72
throw er; // Unhandled 'error' event
^
Error: failed to connect to [#$%67890 :27017]
at null.<anonymous> (/home/thejazeto/code/nodejs/authen/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:553:74)
at EventEmitter.emit (events.js:106:17)
at null.<anonymous> (/home/thejazeto/code/nodejs/authen/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:140:15)
at EventEmitter.emit (events.js:98:17)
at Socket.<anonymous> (/home/thejazeto/code/nodejs/authen/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection.js:512:10)
at Socket.EventEmitter.emit (events.js:95:17)
at net.js:830:16
at process._tickCallback (node.js:415:13)
failed to connect to
, então acho que essabson
mensagem pode não estar relacionada e não ser realmente importante. Tem certeza de que as configurações de conexão do Mongo estão corretas?Respostas:
Eu acho que você não tinha as ferramentas make disponíveis quando instalou sua biblioteca mongodb. Eu sugiro que você faça
xcode-select --install
(em um mac) ousudo apt-get install gcc make build-essential
(no ubuntu)e corra
OU apenas atualização npm com base no comentário @tobias (após a instalação do build-essential)
fonte
mongoskin
módulo.sudo apt-get install gcc make build-essential
dica é uma das melhores dicas de desenvolvimento do Node.js. + Ubuntu que eu já vi. É uma mudança de jogo absoluta se você está acostumado a desenvolver aplicativos da Web e apenas desenvolver com o Node.js. no Ubuntu.gcc
emake
juntobuild-essential
? O último depende dos outros dois, então eles serão instalados de qualquer maneira ( packages.ubuntu.com/trusty/build-essential ). Fazersudo apt-get install build-essential
deve ser suficiente.Eu apenas resolvi isso.
Quando você instala o módulo mangusto pelo npm, ele não possui um módulo bson embutido em sua pasta. No arquivo
node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js
, altere a linhapara
e instale o módulo bson usando o npm.
fonte
Eu resolvi o problema de obter a "Falha ao carregar a extensão c ++ bson" no raspbian (debian for raspberry) por:
e depois
fonte
npm update
, sem instalar mais nada.Não consegui resolver isso
até agora. Antes de tudo, você precisa ter os pacotes de sistema mencionados por Pradeep Mahdevu. Esses são:
ou
Então eu instalei o node-gyp
como o datadracer disse, mas a atualização da NPM também sugerida por ele é arriscada. Ele atualiza todos os módulos, o que pode ser perigoso (às vezes a API muda entre as versões).
Sugiro entrar no diretório node_modules / mongodb / node_modules / bson e, a partir daí, usar
Isso resolveu o problema para mim.
fonte
apt-get install python
) e depois a partir danode_modules/mongoose/node_modules/mongodb/node_modules/bson/
execuçãomake
. Isso criouRelease/bson.node
.Um problema comum é que o node-gyp requer o Python 2.xe se o sistema
python
apontar para 3.x, ele falhará na compilaçãobson
, sem aviso prévio. Você pode corrigir isso definindo umapython
chave global em sua configuração do npm que aponte para o 2.x executável em seu sistema. Por exemplo, no Arch Linux:fonte
No WIN 8.1
Parece que usei uma versão errada do mangusto na minha
package.json
arquivo.Eu removi a linha
"mongoose" : "^3.8.15"
depackage.json
.CLI:
Agora ele diz
"mongoose": "^4.0.6"
empackage.json
e o erro que eu tinha se foi.fonte
Estou executando o Ubuntu 14.04 e para corrigi-lo, tive que criar um link simbólico para o nó apontar para nodejs conforme descrito aqui:
nodejs vs node no ubuntu 12.04
Depois que fiz isso, executei novamente estes comandos:
fonte
Portanto, no meu caso, tentei primeiro verificar neste diretório / node_modules / mongoose / node_modules / , apenas para confirmar que tenho o módulo bson . Eu descobri que não tinha em primeiro lugar, então eu apenas corro
e depois
Tudo foi organizado e testado no Ubuntu.
fonte
make
em/devel/node_modules/bson/
npm install bson
só queria dizer que também tive o erro
Mas com nenhum dos outros erros. Eu tentei de tudo e descobri que os drivers mongodb que eu especificava no arquivo package.json eram incompatíveis com a minha versão do MongoDB. Eu mudei para a minha versão mais recente (1.4.34) e funcionou !!!
fonte
sudo npm rebuild
foi o que o corrigiu para mim.fonte
Finalmente, corrigi esse erro atualizando minha versão da dependência do mongodb para ~ 2.0.36 in
package.json
.fonte
Infelizmente, todas as respostas acima são apenas metade certas. Demorou muito tempo para descobrir isso.
Mongoose bson install via npm lança um aviso e causa o erro ...
Isso funciona como mágica !!
fonte
$ node gyp rebuild module.js:341 throw err; ^ Error: Cannot find module '/private/tmp/js-bson/gyp' at Function.Module._resolveFilename (module.js:339:15) at Function.Module._load (module.js:290:25) at Function.Module.runMain (module.js:447:10) at startup (node.js:140:18) at node.js:1001:3
Para mim, basta executar esses comandos no meu diretório api:
fonte
Eu apenas corri:
e
e tudo fica bem.
fonte
A mensagem de extensão bson é apenas um aviso , eu recebo o tempo todo no meu aplicativo nodejs.
Coisas a verificar:
fonte
Corrigi esse problema no CentOS por
fonte
Corrigi-o alterando a linha 10 de:
de:
para:
fonte
Eu também tive esse problema e isso fez com que minhas sessões não funcionassem. Mas para não quebrar também ...
Eu usei uma conexão de mangusto.
Eu tive isso:
Muito simples. Mas req.session permaneceu sempre vazio.
Fiz o truque. Cuidado, você não tem um 'mongodb' no seu package.json! Apenas Mongoose e connect-mongo.
fonte
Aqui está como eu corrigi o problema no Ubuntu:
ln -s /usr/bin/nodejs /usr/bin/node
npm install node-gyp
cd node_modules/mongodb/node_modules/bson
node-gyp rebuild
Inspirado pela resposta @mbochynski, mas tive que criar um link simbólico primeiro, caso contrário, a reconstrução falhou.
fonte
Eu estava tendo o mesmo problema tentei tantas opções, mas no último
npm intall
na minha pasta de aplicativos média funcionou.fonte
Eu tive esse problema porque estava incluindo a pasta node_modules no meu repositório Git. Quando reconstruí o node_modules no outro sistema, ele funcionou. Um deles estava executando Linux, o outro OS X. Talvez eles também tivessem arquiteturas de processador diferentes.
fonte
Eu tive o mesmo problema na minha instância do EC2. Acho que a causa inicial foi porque eu tinha uma instância do Node em execução quando instalei o Mongo. Parei o serviço Node e, em seguida, executei
dentro da pasta de nível superior do meu projeto de nó. Isso resolveu o problema e tudo parecia novo
fonte
Eu estava tentando executar o nó na pasta compartilhada da máquina virtual (vagante). Isso foi um problema. Minha máquina host é o Windows, o nó instalado no Windows e funcionou como um encanto. Portanto, se você estiver usando uma máquina virtual, tente executar o servidor do nó na máquina host.
fonte
Eu apenas tive o mesmo problema e literalmente nada funcionou para mim. O erro exibido estava
kerberos
causando o problema e era uma dasmongoose
dependências. Como estou no Ubuntu, pensei que poderia haver problemas de permissão em algum lugar entre os pacotes instalados globalmente -/usr/lib/node_modules
viasudo
e aqueles que estão no espaço do usuário.Eu instalei
mongoose
globalmente - comsudo
naturalmente, e tudo começou a funcionar como esperado.PS O
kerberos
pacote agora também está instalado globalmente próximo a elemongoose
, no entanto, não me lembro se o fiz deliberadamente - enquanto tentava resolver o problema ou se estava lá desde o início.fonte
Estou trabalhando no Docker com o centOS 7 e encontrei o mesmo problema.
depois de olhar em volta e fazer várias tentativas, corrigi esse problema instalando o mongodb e o mongodb-server
Não acho que essa seja a melhor maneira de produzir o contêiner mínimo. mas posso limitar o escopo nos seguintes pacotes
fonte
Para o Windows 7.1, essas instruções me ajudaram a corrigir meu ambiente de construção:
https://github.com/mongodb/js-bson/issues/58#issuecomment-68217275
http://christiankvalheim.com/post/diagnose_installation_problems/
fonte
Consegui resolver desinstalando e reinstalando o pacote monk. A instalação inicial aparentemente tinha uma dependência corrompida do mongodb / bson.
fonte
Followint @ user1548357 Decidi alterar o arquivo do módulo. Para evitar os problemas apontados pelos comentários válidos abaixo, incluí minhas alterações em um script pós-instalação para que eu possa defini-lo e esquecê-lo e ter certeza de que ele será executado quando meus módulos forem instalados.
e o script é:
fonte
Para eliminar facilmente o problema, basta adicionar esta linha, tentar e pegar o caminho do bloco:
node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js
Isso é tudo!!!
fonte
A única coisa que me ajuda no Windows 7 (x64): https://stackoverflow.com/a/29714359/2670121
Reinstale o nó e o python com as versões x32.
Passei muito tempo com este erro:
e finalmente, quando instalei o módulo
node-gyp
(para a criação de complementos nativos) e até instalei o SDK do Windows com o visual studio - o nodejs não reconheceu o módulo montadobson.node
como um módulo. Depois de reinstalar o problema se foi.Novamente, o que esse erro significa?
Na verdade, nem é um erro. Você ainda pode usar o mangusto. Mas, neste caso, em vez da rápida realização nativa do
bson
módulo, você conseguiujs-realization
, o que é mais lento.Eu vi muitas dicas como: "editar caminho no node_modules ..." - que é totalmente inútil, porque não resolve o problema, mas apenas desativou as mensagens de erro.
fonte