«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 };