在NodeJS中,是否存在类似于依赖的方法:: Ruby中的destroy用于关联记录?

时间:2016-02-26 09:06:00

标签: javascript mysql node.js sequelize.js

我正在尝试删除关联的农民时删除任务。我读过一个续集文档,我在那里做了相同的解决方案。但我无法自动删除任务。我也尝试过以下链接中的解决方案:

Sequelize onDelete not working

Sequelize.js onDelete: 'cascade' is not deleting records sequelize

我正在使用sequelizejs和mysql。

我的模特:

Task.js

lrwxr-xr-x   1 root  wheel    45B 22 fév 11:42 libcudnn.dylib -> /Developer/NVIDIA/CUDA-7.5/lib/libcudnn.dylib
lrwxr-xr-x   1 root  wheel    48B 26 fév 01:01 libcudnn_static.a -> /Developer/NVIDIA/CUDA-7.5/lib/libcudnn_static.a

Farmer.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;
};

我还能做什么?

另外,我是否需要在mysql相关表上设置'on delete cascade'?如果我不这样做,sequelize定义关联onDelete不起作用?

1 个答案:

答案 0 :(得分:0)

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