访问beforeCreate中的req.headers

时间:2014-09-18 08:17:38

标签: javascript node.js sails.js

我需要获得一些标题' user-agent'以及IP地址你是如何从beforeCreate中做到的?

2 个答案:

答案 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()之前将其删除,这样就不会导致您的模型验证失败。