Sails.js 如何将函数中的默认值添加到Sailsjs中的模型

Sails.js 如何将函数中的默认值添加到Sailsjs中的模型,sails.js,Sails.js,这是我的模型 module.exports = { attributes: { ip: { type: 'ip' }, useragent: { type: 'text' }, type: 'int' } } }; 所以我需要的是,在创建记录之前,我需要从传入的请求中自动填充ip和useragent 这是否可行 谢谢是的,您可以使用

这是我的模型

module.exports = {

    attributes: {

        ip: {
            type: 'ip'
        },
        useragent: {
            type: 'text'
        },
        type: 'int'
        }
    }
};
所以我需要的是,在创建记录之前,我需要从传入的请求中自动填充ip和useragent

这是否可行


谢谢

是的,您可以使用Lifecyclecallbacks(请参阅:)

module.exports={
属性:{
知识产权:{
类型:“ip”
},
用户代理:{
键入:“文本”
},
},
//生命周期回调
创建前:函数(值,cb){
values.ip=
values.useragent=
cb();
});
};

您可以通过在
req.options
上设置一些属性,通过Sails来实现这一点。如果您有一个
用户
模型,并且正在使用蓝图
创建
路线,那么在配置/策略中,您将有:

UserController: {
  create: 'setValues'
}
在api/policies/setValues.js中:

module.exports = function(req, res, next) {

  req.options.values = req.options.values || {};
  req.options.values.ip = <SET IP>;
  req.options.values.agent = <SET USER AGENT>;
  return next();

};
module.exports=功能(req、res、next){
req.options.values=req.options.values | |{};
req.options.values.ip=;
req.options.values.agent=;
返回next();
};
我不记得获得用户IP的首选方式,但看起来很有希望。对于用户代理,您可以尝试
req.headers['user-agent']

如果您使用的是自定义控制器操作,而不是蓝图,这仍然可以正常工作,您只需将请求传递的值与
req.options.values合并即可。values

我特别说过“我需要从请求中获取值。我不想手动填充值
module.exports = function(req, res, next) {

  req.options.values = req.options.values || {};
  req.options.values.ip = <SET IP>;
  req.options.values.agent = <SET USER AGENT>;
  return next();

};