Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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 在NodeJS中,是否有类似于Ruby中dependent::destroy的方法用于关联记录?_Javascript_Mysql_Node.js_Sequelize.js - Fatal编程技术网

Javascript 在NodeJS中,是否有类似于Ruby中dependent::destroy的方法用于关联记录?

Javascript 在NodeJS中,是否有类似于Ruby中dependent::destroy的方法用于关联记录?,javascript,mysql,node.js,sequelize.js,Javascript,Mysql,Node.js,Sequelize.js,我试图在删除关联农民时删除任务。我读过sequelize文档,在那里我也做过同样的解决方案。但我不能自动删除任务。我还尝试了以下链接中的解决方案: 我在mysql中使用sequelizejs 我的模型: Task.js 'use strict'; var Farmer = require('./farmer'); module.exports = function(sequelize, DataTypes) { var Task = sequelize.define('Task',

我试图在删除关联农民时删除任务。我读过sequelize文档,在那里我也做过同样的解决方案。但我不能自动删除任务。我还尝试了以下链接中的解决方案:

我在mysql中使用sequelizejs

我的模型:

Task.js

'use strict';
var Farmer  = require('./farmer');
module.exports = function(sequelize, DataTypes) {
    var Task = sequelize.define('Task', {
        title: DataTypes.STRING,
        deadline: DataTypes.DATE,
        description: DataTypes.TEXT,
        FarmerId: {
            type: DataTypes.INTEGER,
            references: {
                // This is a reference to another model
                model: Farmer,
                // This is the column name of the referenced model
                key: 'id'
            }
        }
    }, {
    classMethods: {
       associate: function(models) {
          Task.belongsTo(models.Farmer, {foreignKey: 'FarmerId'});
          // associations can be defined here
       }
    }
   });
   return Task;
};
Farmer.js

'use strict';
var validator = require('validator');
module.exports = function(sequelize, DataTypes) {
  var Farmer = sequelize.define('Farmer', {
    username:{
            type: DataTypes.STRING,
            allowNull: false,
    },
    address: DataTypes.STRING,
    email: { 
       type: DataTypes.STRING,
       unique: true,
       allowNull: false,
       validate: {
            isEmail: { args: true, msg: "not a valid email!" },
            len: { args: [0, 100], msg: "email can't be bigger than 100"},
        } 
    },
    phone:{
            type: DataTypes.STRING,
            allowNull: false,
    },
  }, {
    classMethods: {
      associate: function(models) {
          Farmer.hasMany(models.Task, {onDelete: 'CASCADE', hooks:true});
        // associations can be defined here
      }
    }
  });
  return Farmer;
};
我还能做什么


另外,我是否需要在mysql相关表上设置“on delete cascade”?如果我不这样做,sequelize define association onDelete不起作用?

您可以在任务定义中省略
FarmerId
。Sequelize通过将任务与Farmer关联,自动知道存在一个
FarmerId
。试试看,其他一切似乎都很平常。

您可以在任务定义中省略
FarmerId
。Sequelize通过将任务与Farmer关联,自动知道存在一个
FarmerId
。试试看,其他一切似乎都很平常