Tag: thunk

从节点,mysql,koa中获取数据

我想从我的MySQL数据库中使用Koa和mysql节点包得到一些数据。 我正在查看co-mysql ,但是自述文件build议直接使用thunkify 。 所以我做了以下几点: const query = thunkify(connection.query.bind(connection)); 这似乎工作,我现在可以做的: app.use(function * main() { const races = yield query( "SELECT * FROM `races` where '2016-01-19' between start_date and end_date" )(function(err, rows) { // rows is the data I need }); }); 但是,我无法find一种方法来将thunk中的行数据返回到我的种族variables中。 我logging它,并显示正确的数据,但是当我尝试将其传回时,它总是返回undefined。 我从callback中尝试了几个方法,但我似乎无法弄清楚: return rows生成yield rows (使callback生成器函数) return yield rows … 我经常得到: TypeError: You […]

将callback转换为thunk

我用koa.js使用mongoose(也许是一个不好的select,但必须坚持下去)。 我最初的callback函数是: var _project = yield parse(this); var userdetails = this.req.user; var that = this ; //============================================================= //FInd a user , check the project name exists under the user, if not then create one //============================================================= User.findOne({ '_id': userdetails._id }, function (err, user) { if (err) { this.body = "please login again , your session seems […]

与Thunkify +mongoose的KoaJS

我正在做我的第一个koajs项目,理解(或试图)发电机function,产量,thunk等。我遇到了一个与mongoose(我严重依赖)的问题。 search论坛后,解决scheme是thunkify: CoffeeScript的: Controller = require './basecontroller' User = require '../models/user' UserController = ((c, User) -> return ( get: (next) -> userQuery = c.libs.thunkify User.find try users = yield userQuery {} @body = users return catch e console.error "Error: #{e}" throw e return next() ) ) Controller, User # Export functionality module.exports = UserController JavaScript的: […]

如何获得与koa thunk readStream?

我想在koa控制器中发出请求,这是工作: var s = require('through2')(); var req = http.request(url, function(res) { res.pipe(s); }) req.end(null); s.on('close', function() { console.log('has close'); }); this.body = s; 但与thunk,这似乎是行不通的。 var s = stream(); yield thunk(url, s); this.body = s; 这里是thunk : var thunk = function (url, s) { return function(callback) { var req = http.request(url, function(res) { res.pipe(s); }); s.on('close', […]

为什么thunkify / yield总是返回一个数组?

我有一个名为logInline的thunk (从Co文档改编而来)。 我注意到thunkified get似乎总是yield一个数组。 这是由devise? 这是做这件事,或者它是yield的标准部分? var co = require('co'), get = thunkify(request.get); var logInline = co(function *(){ var google = yield get('http://google.com'); console.log(google[0].statusCode); }) logInline() 注意这里的variables“google”总是一个数组。 为什么? 请注意, request.get通常返回err, response (即没有数组)。 该脚本,BTW,返回200或任何其他响应代码google.com返回。 唉产量文件是相当稀疏的ATM。 编辑: Thunk不总是返回数组。 例如,如果var readFile = thunkify(fs.readFile); : var fileContents = yield readFile('myfile', 'utf8'); log(fileContents); 在这种情况下,fileContents不会在数组中返回。 那么为什么谷歌里面的数组? thunkify似乎有什么东西来控制thunk的回报