2012-12-18 8 views
6

Ich bin mit dem winston Bibliothek MongoDB: https://github.com/flatiron/winston Der Versuch, die mongodb Datenbank zum Speichern von Daten mit:Unable Logs speichern Datenbank für winston-NodeJS

var MongoDB = require('winston-mongodb').MongoDB; 
var logger = new (winston.Logger)({ 
transports: [ 
    new (winston.transports.Console)(), 
    new (winston.transports.MongoDB)({ host: ip, db: 'caribcultivate', collection: 'log', level: 'info'}) 
], exceptionHandlers: [ new winston.transports.Console() ] 
}); 
logger.log('info', "Running logs "+ d); 
logger.info("Drive: "+ (new Date(d)).toDateString()); 
: https://github.com/indexzero/winston-mongodb

die Daten, die ich verwenden einfügen

Allerdings, wenn ich versuche, die Daten abfragen mit:

winston.query(options, function (err, results) { 
    if (err) {console.log(err);} 
    console.log(results); 
}); 

ich:

{} 

Es funktioniert für die Konsole korrekt, und ich verwende die Datenbank in anderen Teilen der Anwendung mit der Mongoose-Bibliothek.

+1

ich das gleiche Problem habe. Ich verwende MongoHQ mit im Wesentlichen dem gleichen Code wie oben. Hattest du etwas Glück dabei? – abarr

+1

leider nicht. Am Ende komme ich ohne den mongodb aus, wenn man bedenkt, dass es keine Kernanforderung ist und verwendet einen Stream, um in eine Datei zu schreiben. Ich hoffe, das Problem noch einmal zu überdenken, wenn die Arbeitsbelastung abnimmt. – kyleED

Antwort

3

Ich hatte ein ähnliches Problem. Das Problem für mich war, dass der Winston MongoDB-Transport erwartet, dass die Host-Option nur der Host-Name ist und ich ihm mongodb:// voranstellte.

Die folgenden Werke für mich nach mongodb:// aus mongodb://123456.mongolab.com Entfernung:

var logger = new(winston.Logger)({ 
    transports : [ 
     new(winston.transports.MongoDB)({ 
      db : 'logs', 
      host : '123456.mongolab.com', 
      username : 'username', 
      password : 'password' 
     }) 
    ] 
}); 
+0

Ich versuche das auszuprobieren. +1 für das Ziel und einen sauberen Code. –

+1

Mit dem neuesten winston-mongodb können Sie jetzt die Option dbUri anstelle von host, port, dbname usw. verwenden. – aarosil

+0

@ aarosil, verwenden Sie einfach 'db' Parameter, um alles hinzuzufügen, z. 'db: 'mongodb: // myuser: [email protected]: 54545/MyLogDB' – securecurve