sql >> Databáze >  >> NoSQL >> MongoDB

Použití wait.for s nodejs a mongoskin, aby se zabránilo zpětnému volání pekla

Neznám CoffeeScript, opravte mě a já tuto odpověď upravím.

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

Jak vidíte, pro "getUser", pokud je metoda tak jednoduchá, raději použijte svou verzi se zpětným voláním.

"kam umístit launchFiber()?"

vložíte launchFiber, když přijde požadavek. viz https://github.com/luciotato/waitfor#proper-use




  1. Dotaz na pole vnořených dokumentů na nejvyšší hodnotu pole

  2. Jak vytvořit částečný index s proměnným datem?

  3. Zvýšení výkonu díky použití hromadných vložek oproti běžným vložkám v MongoDB

  4. Kontingenční řádky do sloupců v MongoDB