sql >> Databasteknik >  >> NoSQL >> MongoDB

Använder wait.for med nodejs och mongoskin för att undvika callback helvetet

Jag är inte bekant med CoffeeScript, rätta mig så redigerar jag det här svaret.

all: (req,res)->
    var result = wait.forMethod(@em.collection(@collection).find(), "toArray")
    roadmaps = []
    for r in result
        r.user = @getUser(r.user.oid)
        roadmaps.push r
    res.send(roadmaps)



 getUser: (oid)->
    try
      return wait.forMethod(@em.collection('user'),"findOne",{_id:new @objectId(oid)})
    catch(err)
      return undefined

Som du kan se, för "getUser", om metoden är så enkel, är det bättre att använda din version med återuppringningen.

"var ska launchFiber() placeras?"

du lägger launchFiber när en förfrågan kommer. se https://github.com/luciotato/waitfor#proper-use




  1. Hur kan jag minska avvecklingssteg i aggregeringspipeline för kapslade dokument?

  2. $push motsvarande för karta i mongo

  3. MongoServer.State-motsvarighet i 2.0-drivrutinen

  4. Vad betydde egentligen att MongoDB inte var ACID-kompatibel före v4?