2016-09-14 56 views
1

我有一个运行Sails的应用程序,并且我使用了很多POST,GET,PUT,DELETE蓝图,并且它们工作得很好。Sails JS如何在自动路由后触发动作POST

现在,我想触发默认蓝图触发后的操作。例如,如果我请求example.com/user并使用POST发送,我希望蓝图路由将信息插入到数据库中,然后执行其他操作,那么我该怎么做?要使用蓝图(这是伟大的),然后触发一些其他行动,然后返回。

我知道我可以使用自己的路线,但是我想使用Sails为我自动执行的操作,因此我不想为该帖子添加路由并自己做所有事情,而是希望使用Sails插入然后执行某些操作其他。

谢谢!

+0

你能分享一些代码来阐述你打算做什么吗? – gnerkus

回答

1

现在,我想触发默认蓝图 触发后的操作。例如,如果我请求example.com/user并用POST发送 ,我希望蓝图路由将信息插入到数据库 中,然后执行其他操作,我该怎么做?

Lifecycle callbacks旨在解决这类问题。它们是在某些模型操作之前或之后自动调用的函数。例如。 using afterUpdate

module.exports = { 
    attributes: { 
    username: { 
     type: 'string', 
     required: true 
    }, 
    password: { 
     type: 'string', 
     minLength: 6, 
     required: true, 
     columnName: 'hashed_password' 
    } 
    }, 
    // Lifecycle Callbacks 
    afterUpdate: function (values, cb) { 
     // notify user about updated profile 
    } 
}; 

当您需要更大的灵活性,你必须创建像这样

update: function(req, res) { 
    User.update(req.body).exec(function(err, result){ 
    if (err) { 
     // ups 
    } 
    return res.redirect('/something-after') 
    }); 
} 

模型的动作而你可以通过简单地重定向到它调用另一个动作。

+0

这是我收到的有关问题的最佳答案之一,谢谢!生命周期回调正是我所期待的。 –