我的代码在使用时有问题 sequelize
自动。问题是如何连接 sequelize
模型到数据库设置 DB.js
,以便我们可以使用 findall
功能或其他
型号:
/* jshint indent: 2 */
const db = require('../../db/database')
const sequelize = db.sequelize
module.exports = function(sequelize, DataTypes) {
cust: sequelize.define('ms_customer', {
id: {
type: DataTypes.CHAR(10),
allowNull: false,
primaryKey: true
},
gender_id: {
type: DataTypes.INTEGER(1),
allowNull: true
},
status: {
type: DataTypes.CHAR(1),
allowNull: true
}
}, {
tableName: 'ms_customer'
});
};
db.js连接:
const Sequelize = require('sequelize')
const sqlz = new Sequelize('db', 'user', 'pass', {
host: 'localhost',
dialect: 'mysql',
pool: {
max: 5,
min: 10,
idle: 10000
}
})
sqlz
.authenticate()
.then(() => {
console.log('Connection has been established successfully.');
})
.catch(err => {
console.error('Unable to connect to the database:', err);
});
module.exports = {
sqlz: sqlz,
Sequelize: Sequelize
}
查询:
const customerModel = require('../../db/model/ms_customer')
const cust = customerModel.cust
module.exports = {
modelGetCustomerById : (param,req,res) => {
cust.findAll({
where: {
id: {
param
}
}
}).then(customer => {
// console.log(customer)
res.json(customer)
})
}
}
控制器:
const customer = require('../../db/query/customer')
const sequelize = require('sequelize')
module.exports = {
getCustomerById: async(req,res) => {
var customerId = req.params.id
let getCustomerId = await customer.modelGetCustomerById(customerId)
// console.log(getCustomerId)
if(!getCustomerId){
return res.status(500).json({status: "Failed", message:"User not found"});
}
return res.status(200).json({status: "Success", message:getCustomerId});
}
}
为什么我总是出错
无法读取未定义的属性“findall”
请帮忙。。
3条答案
按热度按时间mmvthczy1#
可能的原因是您没有正确传递模型名称。它的产量是多少
console.log(cust)
mv1qrgav2#
我在我的项目上运行的代码没有错误,通过sequelize auto重新建模,通过sequelize连接。过来看:
在models/index.js上:(用于连接到数据库)
在models/m_bank.js代码中:
在controllers/m_bank.js上
在config/config.json配置代码中:
希望这能对你有所帮助。
注:我的数据库是postgres,请根据您的方言数据库进行更改。
-提哈吉
x4shl7ld3#
把你的客户模型改成这个。
您的查询