@artr_lr

Sequelize, PUG и length?

В общем у меня уже крыша начинает кипеть от этого...
Есть БД, в ней вроде как три фотографии.
Имеем модель (специально вставляю весь код из файла, потому что больше всего подозрений на него):
//  /models/photo.js

const Sequelize = require('sequelize');
const db = require('../config/database');

const Photo = db.define('photo', {
  photo_id: {
    allowNull: false,
    autoIncrement: true,
    primaryKey: true,
    type: Sequelize.INTEGER
  },
  alt: {
    type: Sequelize.STRING
  },
  description: {
    type: Sequelize.STRING
  },
  image: {
    type: Sequelize.STRING
  },
},{
  timestamps: false,
  freezeTableName: true,
});

module.exports = Photo;


Роутер:
router.get('/photo', (req, res) => {
  Photo.findAll()
    .then(photos => {
      console.log(photos.length); // выводит 3!
      res.render('index', {
        photos: photos
      });
    })
    .catch((err) => console.log(`Error: ${err}`));
});


и сам шаблон рендера
each key in photos
      p= key.image


В итоге имеем ошибку "TypeError: Cannot read property 'length' of undefined" в терминале. Данные вывелись, но из-за ошибки в терминале не происходит дальнейшего преобразования CSS и прочего (использую webpack-dev-middleware и webpack-hot-middleware).

Весь стаковерфлов перегуглил) у всех эта проблема возникала, если в модели тип данных указывали NUMBER, которого не существует, но у меня-то STRING и INTEGER, по документации!

Далее писали, мол pug не очень дружит с асинхронным рендерингом, но он же рендерит такое
| #{photos}

на экране выведет без ошибок
[object SequelizeInstance:photo],[object SequelizeInstance:photo],[object SequelizeInstance:photo]

В общем я уже не знаю, что и делать ребята....
  • Вопрос задан
  • 229 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы