2012-12-18 12 views
6

używam biblioteki Winston: https://github.com/flatiron/winston Próba przechowywania danych do bazy danych MongoDB z: https://github.com/indexzero/winston-mongodbNie można zapisać dziennik MongoDB Database for Winston-nodejs

wstawić dane używać:

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()); 

jednak gdy próbuję kwerendy danych za pomocą:

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

uzyskać:

{} 

Działa poprawnie dla konsoli, a ja korzystam z bazy danych w innych częściach aplikacji z biblioteką Mongoose.

+1

Mam ten sam problem. Używam MongoHQ z zasadniczo tym samym kodem jak powyżej. Czy miałeś jakieś szczęście, żeby to wypróbować? – abarr

+1

niestety nie. Kończę robiąc bez monondb, biorąc pod uwagę, że nie było to podstawowe wymaganie i użyłem strumienia do zapisu do pliku. Mam nadzieję, że ponownie przeanalizuję problem, gdy obciążenie pracą zostanie wyczyszczone. – kyleED

Odpowiedz

3

Miałem podobny problem. Okazało się, że problemem dla mnie było to, że transport Winston MongoDB oczekuje, że opcja hosta będzie po prostu nazwą hosta, a ja dodałem ją przedrostkiem mongodb://.

następujące prace dla mnie po usunięciu mongodb:// z mongodb://123456.mongolab.com:

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

Próbuję to wypróbować. +1 za trafienie w cel i czysty kod. –

+1

W najnowszym winston-mongodb możesz teraz użyć opcji dbUri zamiast hosta, portu, nazwy bazy danych itp. – aarosil

+0

@arosil, po prostu użyj parametru 'db', aby dodać wszystko, np. 'db: 'mongodb: // myuser: [email protected]: 54545/MyLogDB' – securecurve

Powiązane problemy