Javascript 在beforeCreate中访问请求标头
我需要获取一些标题“用户代理”以及IP地址,您如何在创建之前从中获取这些标题?假设Sails 0.10,我认为仅通过挖掘水线源代码在创建之前的Javascript 在beforeCreate中访问请求标头,javascript,node.js,sails.js,Javascript,Node.js,Sails.js,我需要获取一些标题“用户代理”以及IP地址,您如何在创建之前从中获取这些标题?假设Sails 0.10,我认为仅通过挖掘水线源代码在创建之前的中是不可能的 另一种方法可能是使用一些中间件,将您需要的任何信息附加到主体上,以便在创建之前在中可用,然后在调用next()之前将其删除,这样就不会导致模型验证失败。假设Sails 0.10,我不认为仅仅通过挖掘水线源代码就可以在beforeCreate中实现这一点 另一种方法可能是使用一些中间件,将您需要的任何信息附加到主体中,以便在创建之前在中可用,然
中是不可能的
另一种方法可能是使用一些中间件,将您需要的任何信息附加到主体上,以便在创建之前在中可用,然后在调用next()
之前将其删除,这样就不会导致模型验证失败。假设Sails 0.10,我不认为仅仅通过挖掘水线源代码就可以在beforeCreate
中实现这一点
另一种方法可能是使用一些中间件,将您需要的任何信息附加到主体中,以便在创建之前在中可用,然后在调用next()
之前将其删除,这样就不会导致模型验证失败。req对象在waterline中不可用。所以下一个问题是你是否使用蓝图
如果是的话,那么你可以像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();
};
如果没有,那么在控制器中运行自己的create语句时只需附加必要的信息
我会在beforeCreate中添加一个检查,确保这些字段以自检的形式出现。req对象在waterline中不可用。所以下一个问题是你是否使用蓝图
如果是的话,那么你可以像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();
};
如果没有,那么在控制器中运行自己的create语句时只需附加必要的信息
我会在beforeCreate中添加一个检查,以确保这些字段作为一种自检形式存在