«Error»: «Невозможно прочитать свойство findOne из undefined»

Всем привет !!Здесь у меня большая проблема, я хотел бы пройти регистрацию обратно с помощью Node.js sequelize и mySql. Я искал кое-где, но я не нашел ответа на свою проблему, поэтому я пришел попросить вас о помощи. С mongoDb это было проще, но я признаю, что хожу по кругу.

Вот мой код:

Конечно, еще многое предстоит сделать, но, будучи новичком, я совершенствуюсь по мере продвижения.

Не сердитесь на меня, если мой английский не на высоте, я признаю, что это не моя сильная сторона.

Заранее благодарим вас за оказанную помощь.

4 ответа

Решение

Вы устанавливаете переменную как экспорт файла

      module.exports = user

Затем вы импортируете переменную как.

      const models = require("../models/user")

это означает, что вам не нужен доступ userкак собственность. Вместо этого используйте:

      models.findOne({ // Changed from models.User to models
    attributes: ["email"],
    where: {
        email: email,
    },
});

Это должно остановить вашу текущую ошибку, но вы будете продолжать получать ошибки, пока не измените все экземпляры models.User к models.

Ваш основной файл должен выглядеть так:

Вы напрямую устанавливаете объект экспорта, равный объекту пользователя.

Когда ты это делаешь const models = require("../models/user"), models равно user значение напрямую.

Вы можете напрямую использовать models.findOne. Прочтите это

Проверьте свой файл «модели», чтобы увидеть, существует ли там модель «Пользователь». Также проверьте, используете ли вы "module.exports"

Вы экспортируете модель напрямую, но вызываете ее, как в свойстве объекта с именем. Вы можете получить к нему доступ напрямую, изменив:

      models.User.findOne

к:

      models.findOne

и тогда вы, вероятно, захотите переименовать models к User.

Или измените свой экспорт на:

      module.exports = { User: user };
Другие вопросы по тегам