Non sembra che tu abbia definito l'associazione molti-a-molti tra cibo e ingredienti. In sintesi, devi aggiungere qualcosa di simile ai tuoi modelli:
Modello alimentare:
Food.belongsToMany(Ingredients, { through: Food_ingredients});
Modello degli ingredienti:
Ingredients.belongsToMany(Food, { through: Food_ingredients});
Quindi, quando si desidera eseguire una query, non si include il modello "attraverso", ma l'altro modello nella relazione. Nel tuo caso:
Food.findAll({include: [
{
model: Ingredients
}]}).then(responseWithResult(res)).catch(handleError(res));
Sequelize farà il join per te. Nota che se dai alla tua relazione uno pseudonimo, ad esempio:
Food.belongsToMany(Ingredients, {as 'someAlias', through: Food_ingredients});
Devi aggiungere quell'alias nel tuo include:
Food.findAll({include: [
{
model: Ingredients, as 'someAlias'
}]}).then(responseWithResult(res)).catch(handleError(res));