我尝试从 mysql 数据库获取两列值。
这是我的模型
const Sequelize = require('sequelize');
const db = require('../config/database');
const AuthDetails = db.define('auth_details', {
client_id : {
type: Sequelize.STRING
},
client_secret : {
type: Sequelize.STRING
}
},{
timestamps : false
});
module.exports = AuthDetails;
而且,这是我的路线
router.post('/login', (req, res, next) => {
// console.log(req.body);
Users.findOne( { where : { mobile_number: req.body.mobile_number}})
.then(users => {
UserAuthDet.findAll({
where: {
client_id: req.body.client_id,
client_secret: req.body.client_secret
}
});
});
我在从数据库获取 client_id 和 client_secret 时遇到错误。
我的错误
更新: Database.js 文件
const Sequelize = require('sequelize');
module.exports = new Sequelize('mydbname', 'root', '', {
host: 'localhost',
dialect: 'mysql',
operatorsAliases: false,
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
},
});
最佳答案
尝试将 primaryKey: true
添加到 AuthDetails
中的 client_id
。
const AuthDetails = db.define('auth_details', {
client_id : {
type: Sequelize.STRING,
primaryKey: true
},
client_secret : {
type: Sequelize.STRING
}
},{
timestamps : false
});
我猜测 Sequelize 默认将 id
视为主键,除非指定它并将 id
附加到 findAll
查询。
关于mysql - Node Js (Sequelize) - 未处理的拒绝 SequelizeDatabaseError : Unknown column 'id' in 'field list' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54146073/