node.js - Nodejs Sequelize 有很多问题

标签 node.js postgresql sequelize.js

我已经为这个 Sequelize 打破了我的头脑以获取产品问题并包括它的答案

const ProductQuestions = sequelize.define('product_questions', {
  user: {
     type: Sequelize.BIGINT
  },
  product: {
     type: Sequelize.BIGINT
  },
  question: {
     type: Sequelize.TEXT
  }
});

ProductQuestions.associate = function(models) {
   ProductQuestion.hasMany(models.product_answers,{
       foreignKey: 'question',
       as: 'questionId'
    });
}

const ProductAnswer = sequelize.define('product_answers', {
  question: {
     type: Sequelize.BIGINT,
     field: 'questionId'
  },
  answer: {
     type: Sequelize.TEXT
  },
  user: {
     type: Sequelize.BIGINT,
     field: 'userId'
  }
});

ProductQuestiosn.findAll({include: ['product_answers']});
出于某种原因,当我这样做时,查询运行时列是错误的
SELECT 
"product_questions".*, 
"product_answers"."id" AS "product_answers.id", 
"product_answers"."questionId" AS "product_answers.questionId",
"product_answers"."answer" AS "product_answers.answer", 
"product_answers"."userId" AS "product_answers.user", 
"product_answers"."productQuestionId" AS "product_answers.productQuestionId" 
FROM (
SELECT 
"product_questions"."id", 
"product_questions"."productId" AS "product", 
"product_questions"."question", 
"product_questions"."userId" AS "user", 
FROM 
"product_questions" AS "product_questions") 
AS "product_questions" 
LEFT OUTER JOIN "product_answers" AS "product_answers" 
ON "product_questions"."id" = "product_answers"."productQuestionId"
不知道为什么
ON "product_questions"."id" = "product_answers"."productQuestionId" 
什么时候应该
ON "product_questions"."id" = "product_answers"."questionId"
感谢您的帮助

最佳答案

所以我想通了!
所以看来我必须正确命名我的列
对于 postgres 数据库中的 product_answers 表,我有列 questionId 但它应该命名为 productQuestionId。我想这是为了命名约定,我不能只是按照我想要的方式命名外键。

关于node.js - Nodejs Sequelize 有很多问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64474712/

相关文章:

javascript - 从授权码google oauth2获取刷新 token

ruby-on-rails - 避免 Rails 将 PostgreSQL inet 类型转换为 IPAddr 对象?

database - postgresql导入csv文件

python - Django PostgreSQL : migrating database to a different directory

node.js - 未处理的拒绝 SequelizeValidationError : Validation error: Cannot create property 'allow_display_name' on boolean 'true'

javascript - 如何在 require 中使用原型(prototype)?

javascript - 将同步函数包装到 promise 中的最佳方法是什么

node.js - 使用 context.succeed() 的 Node 单元测试 AWS Lambda 函数

node.js - 在 NODE Sequelize 的 Bulkcreate 中出错?

node.js - 如何将 sqlite3 与 docker compose 一起使用