从nedb回调中收益

时间:2015-10-01 22:45:32

标签: node.js koa nedb

我有一个基于koa的应用,我想将数据写入nedb。 问题显示在以下简短的代码段中。

app.use(router.get('/', function*(){
  db.insert(doc, function(err,data){
     // can't yield here because the callback is not a generator
  }
}));

我根据https://github.com/tj/node-thunkify上的文档尝试了以下thunkify:

var insert = thunkify(db.insert);
app.use(router.get('/', function* (){
   yield insert(doc)
}))

但是我收到以下错误

TypeError: Cannot read property 'push' of undefined
  at Datastore.insert (/home/app/node_modules/nedb/lib/datastore.js:374:16)
  at Object.<anonymous> (/home/app/node_modules/thunkify/index.js:43:12)
  at /home/app/node_modules/koa/node_modules/co/index.js:136:8
  at Object.thunkToPromise (/home/app/node_modules/koa/node_modules/co/index.js:13

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我发现有https://www.npmjs.com/package/co-nedb也使用了thunkify,但有效: - )。