javascript - Query.formatError 中 'users.email' 中的未知列 'where clause'

标签 javascript node.js express jwt sequelize.js

我需要一些代码方面的帮助。这是我的注册功能:

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

}

这是我的检查用户

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();
    });
});

}

用户导出

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

return User;

}

这就是问题

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)

最佳答案

根据您的创建查询,请像这样更新您的模型,然后重试:

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

关于javascript - Query.formatError 中 'users.email' 中的未知列 'where clause',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57689142/

相关文章:

javascript - 是否可以将我为 Android 编写的应用程序部署到 iOS?

javascript - 如何在随机存储到另一个数组后找到与哪个数组相关的值(例如 :array a, 数组 b)

node.js - 调查结果

javascript - 如何在node js中的while循环中等待函数完全执行

node.js - Socketcan+ Express.js +Node.js 获取/发送 Can-Bus 消息

javascript - Particle-JS 响应式 Canvas 高度问题

javascript - React 无状态功能组件的 Flow 返回类型是什么?

javascript - Node - 在继续之前等待 map 完成

javascript - npm 错误! semver.simplifyRange 不是函数

node.js - 第一页加载时有多个快速 session 实例