Свойство findOne не определено в Sequelize - PullRequest
0 голосов
/ 06 марта 2019

Я пытаюсь создать модель, используя Sequelize и mysql db. Я пытаюсь опубликовать в '/ Students / Register', она продолжает выдавать ошибку, говоря, что findOne не является функцией. Я попытался требовать моего sql, но он не работает .. Я также попробовал другую функцию, как findAll, и все еще не работает. в чем проблема. Спасибо

Модели / Students.js

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

module.exports = (sequelize, Sequelize) => {
    const Student = sequelize.define(
        'student', {
            id: {
                type: Sequelize.INTEGER,
                primaryKey: true,
                autoIncrement: true
            },
            name: {
                type: Sequelize.STRING
            },
            email: {
                type: Sequelize.STRING
            },
            password: {
                type: Sequelize.STRING
            },
            created: {
                type: Sequelize.DATE,
                defaultValue: Sequelize.NOW
            }
        }, {
            timestamps: false
        });
    module.exports = Student;
};

База данных / db.js

   const Sequelize = require('sequelize')
const sequelize = new Sequelize('canavs', 'root', 'root', {
    host: 'localhost',
    port: 8889,
    dialect: 'mysql',
    operatorAliases: false,

    pool: {
        max: 5,
        min: 0,
        acquire: 3000,
        idle: 10000
    }
})
// sequelize.import('./models/Students')
module.exports = sequelize;

index.js

const Student_Info = require('./models/Students')
const db = require('./database/db')



// app.use('/students', Student)

app.get('/getName', (req, res) => {
    Student_Info.findOne({
            where: {
                id: 1
            }
        })
        .then((student) => {
            res.json(student.name);
        })
        .catch((err) => {
                res.send('error' + err)
            }

        )
})

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

Позволяет упростить экспорт только для модели ученика. Нет необходимости экспортировать.

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

const Student = connection.define('student', {

    name: Sequelize.STRING,
    email: {
        type: Sequelize.STRING,
        validate: {
            isEmail: true
        }
    },
    password: {
        type: Sequelize.STRING,
        validate: {
            isAlpha: true
        }
    }
});


module.exports = Student;
0 голосов
/ 06 марта 2019

В определении модели student вы не вернули определение.

module.exports = (sequelize, Sequelize) => {
    const Student = sequelize.define(
        'student', {
            ...
        }, {
            timestamps: false
        });
    return Student; // You have to return the Student model in its definition
};

Надеюсь, это поможет ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...