Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.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 使用sequelize的一对一关系?_Javascript_Node.js_Express_Sequelize.js - Fatal编程技术网

Javascript 使用sequelize的一对一关系?

Javascript 使用sequelize的一对一关系?,javascript,node.js,express,sequelize.js,Javascript,Node.js,Express,Sequelize.js,及 我有名为Friend的模型,上面的用户和 我想创建一个关联,其中Friend在user中有每个用户的名称_1、用户_2以及[id] var User = sequelize.define('User', { id: { type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true }, name: { type: DataTypes.

我有名为Friend的模型,上面的用户和

我想创建一个关联,其中Friend在user中有每个用户的名称_1、用户_2以及[id]

    var User = sequelize.define('User', {
    id: {
        type: DataTypes.INTEGER,
        autoIncrement: true,
        primaryKey: true
    },
    name: {
        type: DataTypes.STRING,
        allowNull: false
    }
像这样,


如何在Node Express中使用Sequelize解决此问题为了查询
朋友
并访问用户名,您需要在这两个实体之间创建类型为
hasOne
的关联

"userId_1": "1",
"userId_2": "2",
"user_1": {
  "name": "User1 Name"
},
"user_2": {
  "name": "User2 Name"
}
然后可以使用
Friend.getUser\u 1()


您可以找到有关hasOne关联的更多信息。

像这样定义模型:

var Friend = sequelize.define('Friend', {
    id: {
        type: DataTypes.INTEGER,
        autoIncrement: true,
        primaryKey: true
    }
    Friend.hasOne(User, { as: 'user_1' }); // this will add the attribute user_1Id to Friend
    Friend.hasOne(User, { as: 'user_2' }); // this will add the attribute user_2Id to Friend
}
约束:false
取决于
用户1
用户2
是否为虚构,如果是,则可以删除,如果不是,请保留原样

您可以像这样获取两个用户的数据

var Friend = sequelize.define('Friend', {
    id: {
        type: DataTypes.INTEGER,
        autoIncrement: true,
        primaryKey: true
    },
    userId_1: {
        type: DataTypes.INTEGER,
        allowNull: false
    },
    userId_2: {
        type: DataTypes.INTEGER,
        allowNull: false
    }
);

Friend.belongsTo(User, { as : 'user_1' , foreignKey : 'userId_1', constraints: false});
Friend.belongsTo(User, { as: 'user_2', foreignKey : 'userId_2' , constraints:false});
Friend.findAll({
...
包括:[
{
型号:用户,
as:“用户_1”//
var Friend = sequelize.define('Friend', {
    id: {
        type: DataTypes.INTEGER,
        autoIncrement: true,
        primaryKey: true
    },
    userId_1: {
        type: DataTypes.INTEGER,
        allowNull: false
    },
    userId_2: {
        type: DataTypes.INTEGER,
        allowNull: false
    }
);

Friend.belongsTo(User, { as : 'user_1' , foreignKey : 'userId_1', constraints: false});
Friend.belongsTo(User, { as: 'user_2', foreignKey : 'userId_2' , constraints:false});
Friend.findAll({
    ...
    include : [
        {
            model : User ,
            as : 'user_1' // <--------- Here is the magic
        },        {
            model : User ,
            as : 'user_2' // <--------- Here is the magic
        }
    ]
})