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
Node.js findAll sequelize,模型返回奇数值_Node.js_Express_Sequelize.js - Fatal编程技术网

Node.js findAll sequelize,模型返回奇数值

Node.js findAll sequelize,模型返回奇数值,node.js,express,sequelize.js,Node.js,Express,Sequelize.js,解决此问题的原因是: 我希望列出mysql数据库上的所有事务以及相关用户 我有两个表/模型:事务和用户 交易: module.exports = function(sequelize, DataTypes) { return sequelize.define('transactions', { transaction_id: { type: DataTypes.INTEGER(11), allowNull: false, primaryKey: t

解决此问题的原因是:

我希望列出mysql数据库上的所有事务以及相关用户

我有两个表/模型:事务用户

交易:

module.exports = function(sequelize, DataTypes) {
  return sequelize.define('transactions', {
    transaction_id: {
      type: DataTypes.INTEGER(11),
      allowNull: false,
      primaryKey: true
    },
    user_id: {
      type: DataTypes.INTEGER(11),
      allowNull: false,
      references: {
        model: 'users',
        key: 'user_id'
      }
    },
    account_id: {
      type: DataTypes.INTEGER(11),
      allowNull: false,
      references: {
        model: 'accounts',
        key: 'account_id'
      }
    },




 }, { tableName: 'transactions' }); };
用户:

module.exports = function(sequelize, DataTypes) {
  return sequelize.define('users', {
    user_id: {
      type: DataTypes.INTEGER(11),
      allowNull: false,
      primaryKey: true,
      references: {
        model: 'recipients',
        key: 'created_by'
      }
    },
    contact_id: {
      type: DataTypes.INTEGER(11),
      allowNull: true,
      references: {
        model: 'contacts',
        key: 'contact_id'
      }
    }, }, {
    tableName: 'users',
    timestamps: false
  });
};
我已提出以下建议:

Transaction.hasOne(User, {foreignKey:'user_id'});
User.belongsTo(Transaction, {foreignKey:'user_id'});
我的代码是:

api.get('/trx', async (req, res) => {

   
  Transaction.findAll({
    attributes: ['transaction_id','user_id','account_id'],
    include: [{
      model: User,
      attributes: ['user_id']}]

  })
  .then(intrx => res.json(intrx))
  
  .catch(res.catch_error)


});
结果是:

[
  {
    "transaction_id": 1,
    "user_id": 4,
    "account_id": 1,
    "user": {
      "user_id": 1
    }
  },
  {
    "transaction_id": 2,
    "user_id": 4,
    "account_id": 75,
    "user": {
      "user_id": 2
    }
  }
]
为什么user_id的值不同? 我希望第一个结果中的用户_id=4,而不是1,第二个结果中的用户_id=4


我做错了什么?

您应该这样反转关联:

Transaction.belongsTo(User, {foreignKey:'user_id'});
User.hasOne(Transaction, {foreignKey:'user_id'});

因为
事务
有链接到
用户
,即属于它。

显示模型定义。我既不明白
Transaction
是否有
user\u id
字段,也不明白
user
我已将这两个模型添加到初始问题中。