我需要获得一些标题' user-agent'以及IP地址你是如何从beforeCreate中做到的?
答案 0 :(得分:3)
reline对象在水线中不可用。所以下一个问题是你是否使用蓝图。
如果是,那么你可以像forrestranger建议的那样,但我认为它更适合策略,而不是使其与中间件复杂化。
这是我在每个查询中检查companyId的示例。
// policy.js
module.exports = function(req, res, next) {
req.options.where = _.assign({companyId : req.session.user.company.id}, req.options.where);
req.query.companyId = req.session.user.companyId;
return next();
};
如果为NO,则只需在控制器中运行自己的create语句时附加必要的信息。
我会在我的beforeCreate中添加一个检查,以确保这些字段作为自检的形式存在。
答案 1 :(得分:2)
假设Sails为0.10,我认为beforeCreate
只能通过挖掘水线源代码来实现。
另一种方法可能是让一些中间件将所需的任何信息附加到正文中,以便beforeCreate
中可用,然后在调用next()
之前将其删除,这样就不会导致您的模型验证失败。