Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 取消sails.js模型生命周期回调中的默认行为_Javascript_Node.js_Sails.js - Fatal编程技术网

Javascript 取消sails.js模型生命周期回调中的默认行为

Javascript 取消sails.js模型生命周期回调中的默认行为,javascript,node.js,sails.js,Javascript,Node.js,Sails.js,假设我们创建了一个sails.js模型,它有时应该在发布时保存到DB中(和往常一样),有时不应该。我们可以在模型生命周期回调中执行此逻辑吗 基本上,它只提供了两种方法—像往常一样继续调用next()或在调用next(err)时引发错误。还有其他选择吗?也许可以从回调内部访问req/res对象 module.exports = { attributes: { }, // Lifecycle Callbacks beforeCreate: function(values, nex

假设我们创建了一个sails.js模型,它有时应该在发布时保存到DB中(和往常一样),有时不应该。我们可以在模型生命周期回调中执行此逻辑吗

基本上,它只提供了两种方法—像往常一样继续调用next()或在调用next(err)时引发错误。还有其他选择吗?也许可以从回调内部访问req/res对象

module.exports = {

  attributes: {
  },

  // Lifecycle Callbacks
  beforeCreate: function(values, next) {
    //analyze values

    if (someCondition) {
      //now we realize that we don't want the model to be created
      //we need perform some other stuff and respond with some custom answer
      //how do we do that?
    } else {
      next();
    }
  }
};

这就是控制器的工作,您不希望将req/res对象引入模型。查看是否应创建记录的检查是否属于控制器方法。调用Model.create()时,您应该已经知道是否要创建它。如果要使用蓝图或减少代码重复,可以使用策略(中间件),在调用Model.create()之前将其附加到路由并执行检查