我正在开发一个 nodejs+sequelize+jade 网络应用程序来学习 nodejs。一切基本的东西都很清楚,但现在我想提高赌注。我有一个名为品牌的对象(表)。对象产品与品牌具有一对多的关系。我喜欢做的是找到所有品牌并在 Jade 模板中显示它们,并在其下列出产品。
这是一些基本代码
var Brand = sequelize.import(application_root + "/models/brand.js");
var Product = sequelize.import(application_root + "/models/product.js");
Brand.hasMany(Product, { as: 'Products', foreignKey: 'brand'});
Product.belongsTo(Brand, { foreignKey: 'key'});
在展示我做的品牌和产品的过程中;
Brand.findAll().error(errorHandler).success(function(brands)
{
brands[0].getProducts().success(function(products) {
brands[0].products = products;
});
res.render('listOfbrands.jade', { title: 'List of brands', items: brands});
});
最奇怪的是,我可以看到执行 console.log 时触发了一个查询,但它没有使用品牌的主键创建正确的查询。查询是 select * from products where "brand" 为空
另外我想知道我是否正确分配子集合以通过这样做在我的 Jade 模板中访问它
ul
each item in items
li(class='brandItem')= item.name
ul
each product in item.products
li=product.name