【发布时间】:2014-12-31 01:30:27
【问题描述】:
我想在sails 将页面渲染为html 之前调用一个单独的函数(例如服务函数)。请参考下面我的控制器代码...
var MYController = {
index: function(req, res, next) {
req.flash("error", "Testing hello world");
MyCustomServices.myFunction( req, res );
res.view();
}
}
只是添加我的服务功能,api/services/MyCustomServices.js
exports.myFunction = function( req, res ){
Test.findOne({ code : "CODE" }, function(err, resp) {
if ( resp ) {
res.locals.TEST = resp;
}
});
var msg = req.flash('error');
res.locals.ERROR = msg.length>0 ? msg : "" ;
};
在这种情况下,在执行 res.view 之前,当我调用 MyCustomServices.myFunction( req, res ); 时,还有另一个进程要运行。
问题是,每次调用 res.view() 函数时,我都需要在所有控制器的操作中添加这一行。
我试图添加这个 MyCustomServices.myFunction(req, res);在 express.js 中,但它似乎没有按预期工作。但是我想,应该是快递,只是不知道需要加什么代码。
MyCustomServices.myFunction(req, res) 里面的内容是:
- sails 从 MongoDB 获取一些数据的查询
- 解析要在视图中传递的 req.flash 消息以进行显示。
有人知道这个吗?
【问题讨论】:
-
能否在myFunction()中显示代码
-
嗨 Quince,我更新了代码,感谢您的时间 :)
标签: javascript mongodb express sails.js