Bacon.js和RxJS与Express.js和Mongoose.js
我使用Express.JS(4.x版)在服务器端使用Bacon.js,
这个方法从不回应! 我在这里做的事情是非常错误的吗?
var User = require('../data/User'); var Bacon = require('baconjs').Bacon; module.exports = function(router){ router.route('/users').get(function(req, res){ var result = Bacon.fromNodeCallback(User.find, null); result.onValue(function(docs){ res.status(200).send(docs); }); result.onError(function(err){ res.status(500).send(err); }); }); };
很显然,我和RxJS一样都失败了…
var User = require('../data/User'); var Rx = require('rx'); module.exports = function(router){ router.route('/users').get(function(req, res){ var query = Rx.Observable.fromNodeCallback(User.find)(); query.subscribe(function(docs){ res.send(docs); }, function(err){ res.send('Error: ' + err); }, function(){ console.log("COMPLETED"); }) }); };
这是返回的错误:
Error: TypeError: Cannot read property 'discriminatorMapping' of undefined
你应该使用一个对象来使用Bacon.fromNodeCallBack :
Bacon.fromNodeCallback(User, "find", null);
这将正确地绑定您的代码。