Node.js 使用Sequelize.js ORM查询多个模型
我需要为编辑窗口选择所有Node.js 使用Sequelize.js ORM查询多个模型,node.js,sequelize.js,Node.js,Sequelize.js,我需要为编辑窗口选择所有SPR\u-TYPE\u-UM和SPR\u-TYPE\u-ASSETS,但选择一个SPR\u-TYPE\u-ASSETS router.get('/edit/:assetId', function (req, res) { models.SPR_ASSET.findAll({ include: [models.SPR_TYPE_UM, models.SPR_TYPE_ASSETS], // need to include al
SPR\u-TYPE\u-UM
和SPR\u-TYPE\u-ASSETS
,但选择一个SPR\u-TYPE\u-ASSETS
router.get('/edit/:assetId', function (req, res) {
models.SPR_ASSET.findAll({
include: [models.SPR_TYPE_UM, models.SPR_TYPE_ASSETS],
// need to include all um and types here
where: { ID_ASSET: req.params.assetId}
}).then(function(data) {
console.log(data);
res.render('assets/edit', {
title: 'Assets specification',
data: data
});
});
});
联想
SPR_ASSET.belongsTo(models.SPR_TYPE_UM, {foreignKey: 'ID_TYPE_UM', onUpdate: "NO ACTION"});
SPR_ASSET.belongsTo(models.SPR_TYPE_ASSETS, {foreignKey: 'ID_TYPE_ASSETS', onUpdate: "NO ACTION"});
SPR_TYPE_UM.hasMany(models.SPR_ASSET, {foreignKey: 'ID_TYPE_UM'});
SPR_TYPE_ASSETS.hasMany(models.SPR_ASSET, {foreignKey: 'ID_TYPE_ASSETS'});
也许我有错误的关联,或者我应该对原始查询执行此操作?
此查询仅提供一条来自SPR\u资产
、SPR\u类型资产
和SPR\u类型资产
的记录
我需要
SPR\u ASSET
中的一条记录,以及SPR\u TYPE\u UM
和SPR\u TYPE\u ASSETS
中的所有记录。对我来说,这就是解决方案,也许有更好的方法
router.get('/edit/:assetId', function (req, res) {
models.SPR_ASSET.findAll({
include: [models.SPR_TYPE_UM, models.SPR_TYPE_ASSETS],
// need to include all um and types here
where: { ID_ASSET: req.params.assetId}
}).then(function(data) {
console.log(data);
res.render('assets/edit', {
title: 'Assets specification',
data: data
});
});
});
router.get('/edit/:assetId', function (req, res) {
models.SPR_ASSET.findAll({
where: { ID_ASSET: req.params.assetId}
}).then(function(SPR_ASSET_DATA) {
models.SPR_TYPE_UM.findAll().then(function(SPR_TYPE_UM_DATA){
models.SPR_TYPE_ASSETS.findAll().then(function(SPR_TYPE_ASSETS_DATA){
var data ={
SPR_ASSET: SPR_ASSET_DATA,
SPR_TYPE_UM: SPR_TYPE_UM_DATA,
SPR_TYPE_ASSET: SPR_TYPE_ASSETS_DATA
}
console.log(data);
res.render('assets/edit', {
title: 'Справочник спецификаций',
data: data
});
})
})
});
});
};