0
出力されるHTMLタグの量が、SQLクエリに表示されるレコードの量よりもはるかに多い各ステートメントのハンドルバーに問題があります。私がテストで特定できるのは、データベース内のレコード数が正確に表示され、データを展開していないため、SQLクエリに問題がないように見えることだけです。これは、私のループやオブジェクトがSQLクエリ情報を格納しているかもしれないと思うようになりました。ここでハンドルバー複数のレコードを出力する
は、HTMLが表示されている。ここで
はHTMLである:ここでは
{{#each currentUsers}}
<li>{{this.email}} ({{#with this.teams.[0]}}{{teamName}}{{else}}No Team{{/with}})|<a href="/app/settings/users/{{this.userId}}/team">Edit Team</a> {{#ifeq this.userId ../user.userId}} (Admin) {{else}}| <a href="/app/users/{{this.userId}}" id="user-delete-link">Delete</a>{{/ifeq}}</li>
{{else}}
<p>No additional users</p>
{{/each}}
は私のルートである:ここでは
appRoutes.route('/settings/users')
.get(function(req, res){
models.User.find({
where: {
organizationId: organization.organizationId
}, attributes: ['userId', 'email', 'firstName', 'lastName'],
include: [{
model: models.Team,
attributes: ['teamName']
}]
});
}).then(function(currentUsers){
res.render('pages/app/settings-users.hbs',{
user: req.user,
currentUsers: currentUsers
});
}).catch(function(error){
res.send(error);
console.log(error);
})
});
が出力されます正確に1つのレコードを表示するSQL sの私は期待:
は最後に、実際のSQL:
SELECT `user`.*, `teams`.`team_id` AS `teams.teamId`, `teams`.`team_name` AS `teams.teamName`, `teams.member`.`member_id` AS `teams.member.memberId`, `teams.member`.`member_email` AS `teams.member.memberEmail`, `teams.member`.`organization_id` AS `teams.member.organizationId`, `teams.member`.`team_id` AS `teams.member.teamId`, `teams.member`.`user_id` AS `teams.member.userId`, `teams.member`.`created_at` AS `teams.member.created_at`, `teams.member`.`updated_at` AS `teams.member.updated_at`, `teams.member`.`organization_id` AS `teams.member.organization_id`, `teams.member`.`team_id` AS `teams.member.team_id`, `teams.member`.`user_id` AS `teams.member.user_id` FROM (SELECT `user`.`user_id` AS `userId`, `user`.`email`, `user`.`first_name` AS `firstName`, `user`.`last_name` AS `lastName` FROM `user` AS `user` WHERE `user`.`organization_id` = 2 LIMIT 1) AS `user` LEFT OUTER JOIN (`member` AS `teams.member` INNER JOIN `team` AS `teams` ON `teams`.`team_id` = `teams.member`.`team_id`) ON `user`.`userId` = `teams.member`.`user_id`;
'Model.findAll()'を使用すると、データがあれば常にオブジェクトの配列が返されます。 '.find()'は、レコードが1つあればオブジェクトを返し、それ以上の場合は配列を返します。 –
ありがとうございました。@TilekbekovYrysbekは、私が探していた正確な答えでした。これを答えとして貼り付けてもいいですか?私は承認しupvoteしますか?非常に役立ち、簡単な修正! – cphill