当我使用 expressjs 时,但我不知道如何将它与streamlinejs一起使用。
看快递代码:
var app = express.createServer();
app.get('/', function(req,res) {
User.find({name:'Jack'}, function(err, users) {
res.send(users);
});
});
如何在代码中使用streamlinejs?
当我使用 expressjs 时,但我不知道如何将它与streamlinejs一起使用。
看快递代码:
var app = express.createServer();
app.get('/', function(req,res) {
User.find({name:'Jack'}, function(err, users) {
res.send(users);
});
});
如何在代码中使用streamlinejs?
这是我在常见问题解答中快速介绍的一点(https://github.com/Sage/streamlinejs/blob/master/FAQ.md#the-underscore-trick-is-design-for-callbacks-but-not-事件如何做我处理事件)。
最简单的解决方案是将下划线作为额外参数添加到get
回调:
app.get('/', function(req,res, next, _) {
var users = User.find({name:'Jack'}, _);
res.send(users);
});
唯一的问题是如果connect
有一天在其回调中添加第四个参数。以下是更安全一些(但可能是矫枉过正,因为我不明白为什么connect
会改变它的回调 API):
app.get('/', function(req,res) {
(function(_) {
var users = User.find({name:'Jack'}, _);
res.send(users);
})(trap); // trap is a generic callback that handles errors
});
我们为Thingdom使用 Express 和 Streamline,为此,我们构建了一个简单的包装器,允许next
回调(第三个参数)成为 Streamline 友好的回调,用于路由处理程序和中间件处理程序。
干得好:
https://gist.github.com/1087991
=)
我一直想把它变成一个通用模块并发布到 npm——我很快就会这样做。 编辑:https ://github.com/aseemk/express-streamline
请注意,这样做的结果是一个权衡——您不能让路由处理程序“继续”(失败)到其他路由处理程序。不过,我们从未使用过该功能,也没有预见到自己会这样做——知道每个路由处理程序都是最终目的地要简单得多——所以我们可以接受这种权衡。
编辑:这仅使用 Express 2.x 进行测试。