2016-08-30 5 views
0
app.use(route.get('/allUsers',async(ctx)=> { 
    var usersList = await db.users.find({}); 

    console.log("data",usersList); 

    await ctx.render('BrowseAllUsers',{userlist:usersList}); 
})) 

это мой код и я получаю [функция] в качестве выхода, если я пишу console.log (USERLIST), но если я пишу console.log (» данные», Список пользователей задается); то им становитсяnodejs koajs асинхронной AWAIT не получают значение из db.collection.find

data function (fn){ 
    cb = fn; 

    if (results && !called) { 
    called = true; 
    fn.apply(this, results); 
    } 
} 

этот выходной что неправильно

использованием

"dependencies": { 
"babel-core": "^6.13.2", 
"babel-polyfill": "^6.13.0", 
"babel-preset-es2015": "^6.13.2", 
"babel-preset-stage-0": "^6.5.0", 
"co": "^4.6.0", 
"co-monk": "^1.0.0", 
"koa": "^2.0.0-alpha.5", 
"koa-bodyparser": "^3.2.0", 
"koa-convert": "^1.2.0", 
"koa-generic-session": "^1.11.3", 
"koa-passport": "^2.2.2", 
"koa-route": "^3.1.0", 
"koa-static": "^3.0.0", 
"koa-validate": "^1.0.6", 
"koa-views": "^5.0.2", 
"monk": "^3.1.1", 
"passport-google-auth": "^1.0.1", 
"passport-local": "^1.0.0", 
"swig": "^1.4.2" 

}

И узел --version v4.5.0

, как я могу получить список пользователи в списке пользователей, что не так с моим кодом

ответ

2

Я предполагаю, что db.users является результатом co-monk обертывания коллекции.

Поскольку co-monk использует thunkify, db.users.find() возвращает thunk, который async/await не может справиться (я думаю, что дизайн).

Вместо этого, вы можете использовать регулярные обещания, которые Монах поддерживает из коробки:

// Assuming `db` is a Monk instance: 
var usersList = await db.get('users').find({}); 

Я обнаружил, что вам нужно удалить все вызовы к co-monk, в противном случае его последствия будут «задерживаться» и выше кода также потерпит неудачу.

Вы можете, вероятно, по-прежнему хранить ссылку на коллекцию в db, если вам нравится:

db.users = db.get('users'); 

// then, later: 
let results = await db.users.find(...); 
+0

спасибо большое, что решить мою проблему –

+0

нормально, то не надо использовать со-монах в коа 2 или я до –

+0

@PriyaPatil 'co-monk' и Koa 2, скорее всего, не сработают вместе. – robertklep

 Смежные вопросы

  • Нет связанных вопросов^_^