我来自面向对象的背景,以下是我将 json 响应中的两个或多个模型的属性与 Express 相结合的理想语法:
//Verbose
app.get('/boat_house', function(req, res){
var boat = Model1;
var house = Model2;
var bColour = boat.colour;
var hWidth = house.width;
res.jsonp({
boatColour: bColour,
houseWidth: hWidth,
});
});
//Compact
app.get('/boat_house', function(req, res){
res.jsonp({
boatColour: Model1.colour,
houseWidth: Model2.width,
});
});
从我所见,这是不可能的。我研究过光纤和异步,我知道 Node 充满了许多模块来解决许多问题。尽管我在尝试模仿上述内容时最终追上了我的尾巴。
- 如何将 Model1 和 Model2 的属性组合到 res.jsonp 中?
- 什么反回调地狱模块最能模拟上述语法?
- 我错过了顿悟吗?我是否需要放弃我的 OO 方式并了解如何以功能/模块化的方式解决我的问题(即上述问题)?
编辑:
从数据存储中检索模型。例如,使用 mongoose API,您可以通过以下方式检索 Model1:
Boat.findOne(function(boat){
//do something with boat
});
我遇到了这个类似的问题,答案建议使用 async.parallel。我更喜欢类似于以下的语法:
var when = require('HypotheticalPromiseModule').when;
var boat = Model1.getAsync();
var house = Model2.getAsync();
when(boat, house).then(function() {
res.jsonp({ ... });
});
那里有一个 npm 模块可以给我这个吗?