私は最初のkoajsプロジェクトに取り組んでおり、ジェネレーター関数、yield、thunksなどを理解した(またはしようとした)後、マングース(私が大きく依存している)で問題が発生しています。フォーラムを検索した後、解決策はthunkifyでした:
コーヒースクリプト:
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:
// Generated by CoffeeScript 1.8.0
var Controller, User, UserController;
Controller = require('./basecontroller');
User = require('../models/user');
UserController = (function(c, User) {
return {
get: function*(next) {
var e, userQuery, users;
userQuery = c.libs.thunkify(User.find);
try {
users = (yield userQuery({}));
this.body = users;
return;
} catch (_error) {
e = _error;
console.error("Error: " + e);
throw e;
return;
}
return next();
}
};
})(Controller, User);
module.exports = UserController;
これは私の頭では理にかなっています...しかし、私はこのエラーを受け取っています:
14:56:01 web.1 | Error: TypeError: Cannot read property 'discriminatorMapping' of undefined
14:56:01 web.1 | TypeError: Cannot read property 'discriminatorMapping' of undefined
14:56:01 web.1 | at find (/Users/mial/Projekte/MiPa/schuppen4-on-heroku/node_modules/mongoose/lib/model.js:940:18)
14:56:01 web.1 | at Object.<anonymous> (/Users/mial/Projekte/MiPa/schuppen4-on-heroku/node_modules/thunkify/index.js:43:12)
14:56:01 web.1 | at next (/Users/mial/Projekte/MiPa/schuppen4-on-heroku/node_modules/koa/node_modules/co/index.js:90:21)
14:56:01 web.1 | at Object.<anonymous> (/Users/mial/Projekte/MiPa/schuppen4-on-heroku/node_modules/koa/node_modules/co/index.js:45:5)
14:56:01 web.1 | at Server.<anonymous> (/Users/mial/Projekte/MiPa/schuppen4-on-heroku/node_modules/koa/lib/application.js:125:8)
14:56:01 web.1 | at Server.emit (events.js:110:17)
14:56:01 web.1 | at HTTPParser.parserOnIncoming [as onIncoming] (_http_server.js:491:12)
14:56:01 web.1 | at HTTPParser.parserOnHeadersComplete (_http_common.js:111:23)
14:56:01 web.1 | at Socket.socketOnData (_http_server.js:343:22)
14:56:01 web.1 | at Socket.emit (events.js:107:17)
...うーん。ヘルプ?:)