Mongolab nodejs topologie détruit
J'ai été l'interfaçage avec twitter à l'aide de nodejs. J'essaie de connecter certains publiques importantes, les données de l'utilisateur dans un mongolab la base de données mongodb. Pour une raison que je reçois un "topologie détruit erreur" je ne suis pas tout à fait sûr pourquoi.
var Twitter = require('twitter');
var mongodb = require('mongodb');
var accounts = ['@zaynmalik',
'@ZooeyDeschanel'];
var client = new Twitter({
consumer_key: 'key',
consumer_secret: 'secret',
access_token_key: 'key',
access_token_secret: 'secret'
});
var MongoClient = mongodb.MongoClient;
var url = "mongodb://user:[email protected]:numbers/db";
MongoClient.connect(url, function (err, db) {
if (err) {
console.log('Unable to connect to the mongoDB server. Error:', err);
} else {
//HURRAY!! We are connected. :)
console.log('Connection established to database');
var collection = db.collection('accounts');
for(var i = 0; i < accounts.length; i++){
client.get('users/show', {screen_name: accounts[i]}, function(error, tweets, response){
if(error) console.log(error);
var account = {'screen_name': accounts[i], 'id': tweets.id};
collection.insert(account, {w:1}, function(err, result) {console.log(err);});
//collection.insert(account);
console.log(tweets.id); //Raw response object.
});
}
db.close();
}
});
Comme vous pouvez le voir, le programme établit une connexion à la base de données. Définit la collection puis parcourt un certain nombre de comptes twitter et les journaux de l'information pertinente. Le twitter demandes sont un succès et la mongodb fonctionne avec de simples demandes. Si vous avez des idées sur comment je reçois cette réponse s'il vous plaît répondre.
OriginalL'auteur Aidan Collins | 2015-05-24
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème, votre connexion de base de données se ferme avant que l'ensemble de vos demandes de twitter sont faits et que les données insérées.
J'ai fini par envoyer de rappel de ma fonction comme ils le font dans la documentation.
https://github.com/mongodb/node-mongodb-native#inserting-a-document
Vous pouvez voir la suite de l'insertion se fait qu'ils appellent
callback(result);
Et qui est juste en fonction anonyme qui appelle
db.close()
Voici quelques liens qui pourraient vous aider avec ouverture/fermeture db connections
Quand fermer la base de données MongoDB connexion en Nodejs
Pourquoi est-il recommandé de ne pas fermer une connexion MongoDB n'importe où dans Node.js code?
En gardant une connexion de base de données MongoDB
Espère que cela aide!
OriginalL'auteur alucic
Ayant connu le même problème, j'ai trouvé que Mongolab recommande d'appliquer les paramètres suivants afin de garder Mongodb la connexion de la vivant en production:
J'espère que cela va vous aider, ou d'autres personnes ayant ce "Topologie a été détruit" problème.
OriginalL'auteur Adrien Joly
J'ai eu le même problème. Ensuite, j'ai eu l'idée de mettre à jour ma mangouste bibliothèque . Mais comme j'étais en train de npm install mangouste est apparu le message d'erreur " ... kerberos erreurs ( gssapi /gssapi.h fichier non trouvé) ... " . Donc, après quelques recherches, j'ai vu que pour résoudre assez pour exécuter apt - get install libkrb5 -dev ou d'A Hat yum install krb5 -devel . Après je n'ai npm install, la mangouste et a résolu mon problème
J'ai juste suivi ce conseil et il a travaillé pour moi.
sudo aptitude install libkrb5-dev
&&rm -rf node_modules
&&npm install
Et c'est tout. Merci @gilmarOriginalL'auteur gilmar