是否可以直接在SailsJS中的Model中访问会话变量

时间:2014-06-27 17:24:07

标签: node.js session express sails.js

我有一种情况,我想使用Sails'在模型上创建蓝图。但是,我需要访问该创建的会话变量:

URL: / api / myModel / create [post]

型号:     module.exports = {

    adapter: 'mongo',
    schema: true,
    attributes: {
        user: {
            model:'user',
            required:true,
            index:true
        },
        item: {
            model:'item',
            required:true,
            index:true
        },
        quantity: {
            required:true,
            type: 'integer',
            defaultsTo: 1,
            min: 0
        },
        size: {
            required:true,
            type:'string'
        },
        container: {
            required:true,
            type:'string'
        },
        dateManuf: {
            required:true,
            date:true
        }
    },
    beforeValidation:function(values, next) {
        /* I want to automatically set the logged in 
           USERID here */

        next();
    }
};

我想在字段中自动设置登录用户会话userid的值。我是否必须创建自己的自定义路由/控制器操作才能正确访问" req"场?

1 个答案:

答案 0 :(得分:0)

它是sails.js Use session param in model的副本,所以答案是否定的。但是你有几个选择。您可以在策略中设置此值,也可以重写蓝图操作来执行此操作。我还要求会话用户附加到所有模型并以这种方式执行。

例如,在策略中,这将在任何蓝图创建操作

上设置userId
req.query.userId = req.session.userId;