user11395273
user11395273

Reputation:

Unknown column 'users.email' in 'where clause' at Query.formatError

I need help with some code. This is my signup function :

exports.signup = (req, res) => {
// Save User to Database
console.log("Processing func -> SignUp");

User.create({
    name: req.body.name,
    username: req.body.username,
    lname: req.body.lastname,
    email: req.body.email,
    password: bcrypt.hashSync(req.body.password, 8)
}).then(user => {
    Role.findAll({
        where: {
            name: {
                [Op.or]: req.body.roles
            }
        }
    }).then(roles => {
        user.setRoles(roles).then(() => {
            res.send("User registered successfully!");
        });
    }).catch(err => {
        res.status(500).send("Error -> " + err);
    });
}).catch(err => {
    res.status(500).send("Fail! Error -> " + err);
})

}

this is my check user

checkDuplicateUserNameOrEmail = (req, res, next) => {
// -> Check Username is already in use
User.findOne({
    where: {
        username: req.body.username
    }
}).then(user => {
    if (user) {
        res.status(400).send("Fail -> Username is already taken!");
        return;
    }

    // -> Check Email is already in use
    User.findOne({
        where: {
            email: req.body.email
        }
    }).then(user => {
        if (user) {
            res.status(400).send("Fail -> Email is already in use!");
            return;
        }

        next();
    });
});

}

user export

module.exports = (sequelize, Sequelize) => {
const User = sequelize.define('users', {
    name: {
        type: Sequelize.STRING
    },
    username: {
        type: Sequelize.STRING
    },
    password: {
        type: Sequelize.STRING
    }
});

return User;

}

and this is the problem

Unhandled rejection SequelizeDatabaseError: Unknown column 'users.email' in 'where clause' at Query.formatError (C:\Users\Itzik\Desktop\לימודים\projact3\server\node_modules\sequelize\lib\dialects\mysql\query.js:244:16) at Query.handler [as onResult] (C:\Users\Itzik\Desktop\לימודים\projact3\server\node_modules\sequelize\lib\dialects\mysql\query.js:51:23) at Query.execute (C:\Users\Itzik\Desktop\לימודים\projact3\server\node_modules\mysql2\lib\commands\command.js:30:14)
at Connection.handlePacket (C:\Users\Itzik\Desktop\לימודים\projact3\server\node_modules\mysql2\lib\connection.js:449:32) at PacketParser.Connection.packetParser.p [as onPacket] (C:\Users\Itzik\Desktop\לימודים\projact3\server\node_modules\mysql2\lib\connection.js:72:12) at PacketParser.executeStart (C:\Users\Itzik\Desktop\לימודים\projact3\server\node_modules\mysql2\lib\packet_parser.js:75:16) at Socket.Connection.stream.on.data (C:\Users\Itzik\Desktop\לימודים\projact3\server\node_modules\mysql2\lib\connection.js:79:25) at Socket.emit (events.js:198:13) at addChunk (_stream_readable.js:288:12) at readableAddChunk (_stream_readable.js:269:11) at Socket.Readable.push (_stream_readable.js:224:10) at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)

Upvotes: 0

Views: 1618

Answers (1)

Vivek Doshi
Vivek Doshi

Reputation: 58593

As per your create query , Please update your model like this and try again :

const User = sequelize.define('users', {
    name: {
        type: Sequelize.STRING
    },
    lname: {                        // <---- MISSING
        type: Sequelize.STRING
    },
    username: {
        type: Sequelize.STRING
    },
    email: {                        // <---- MISSING
        type: Sequelize.STRING
    }
    password: {
        type: Sequelize.STRING
    }
});

Upvotes: 1

Related Questions