如何使用sequelize从现有表中选择数据

时间:2016-05-16 10:07:39

标签: node.js postgresql sequelize.js

我已经在postgresql中有表了。我想使用sequelize从他们检索数据。我用了几种方法来做到这一点。但仍然无法将db schma映射到node.js中的sequelize。

  const Test = Conn.define('test', {
          race_id: 
          {
           type: Sequelize.STRING,
           allowNull: false   
           },
          race_name:
          {
           type: Sequelize.STRING,
           allowNull: false
          }
   });

  Conn.sync(); 
export default Conn;

我在node.js中定义了模式,并在postgresql中有一个具有相同模式的表。

但是当执行Db.models.test.findAll({ where: args });

控制台将输出结果如下:

  

执行(默认):SELECT" id"," race_id"," race_name"," createdAt",   " updatedAt"从"测试" AS"测试&#34 ;;

我将获得另一个输出

column \"id\" does not exist

我无法弄清楚为什么sequelize从测试表中检索数据并检索我没有的列。

如何使用sequelize从现有表格中选择表格? 我需要使用ORM来满足需求,并且不能使用其他方式来获取数据。

1 个答案:

答案 0 :(得分:4)

您应该定义主键:

const Test = Conn.define('test', {
      race_id: 
      {
       type: Sequelize.STRING,
       allowNull: false,
       primaryKey: true
       },
      race_name:
      {
       type: Sequelize.STRING,
       allowNull: false
      }
});

这将使用您的主键替换查询中的id

检查working with legacy tables,因为它可能会对您未来的问题有所帮助。