sequelize返回未定义

时间:2018-09-08 06:52:11

标签: node.js postgresql express sequelize.js

我正在将sequelize与Express js一起使用,并将其链接到PostgreSQL数据库。

我试图返回表中的所有供应商(列:供应商,类别和ID)。我正在使用以下findall()函数来实现此目的:

router.get('/', function(req, res, next) {
  models.vendors.findAll({attributes: ['vendor','category','id']}).then(function(vendors) {
    res.render('index', {
      title: 'Budget',
      vendors: vendors
    });
    console.log(vendors[0])
  });
});

console.log的输出如下

vendors {
   dataValues:
   { vendor: 'FIRSTVENDOR',
     category: null,
     id: 1},
....

以下函数返回undefined而不是预期的“ FIRSTVENDOR”。

console.log(vendors[0].vendor) 

但是以下功能有效。

console.log(vendors[0].id)

我想我需要以某种方式声明变量类型?

要创建数据库,我执行了以下操作:

CREATE TABLE vendors(id serial, vendor text primary key, category text default NULL, total float8);

1 个答案:

答案 0 :(得分:0)

我在模型对象中有一个错字。我替换了

  const vendors = sequelize.define('vendors', {
    vendors: DataTypes.STRING
   }, {});

使用

  const vendors = sequelize.define('vendors', {
    vendor: DataTypes.STRING,
    category: Datatypes.STRING
   }, {});