私はExpress、Node、Pugを使ってアプリケーションを構築しています。 Expressでは、私はGET books/:id
のエンドポイントを持っています。私はミドルウェア機能のすべての本をつかんでいます。そして、私はそのビューをレンダリングします。ビューでは、すべての本をループし、1つの本の詳細のみを表示するのではなく、すべての本を表示します。 1つのブックの詳細ビューのみをレンダリングするにはどうすればよいですか?ここですべてのオブジェクトではなくPugで詳細ビューをレンダリングするにはどうすればよいですか?
// GET the book detail page
router.get('/:id', (req, res, next) => {
bookQuery = Book.findAll({
include: [
{ model: Loan }
],
order: [["title", "DESC"]]
}).then((books) => {
console.log(books);
res.render('book_detail', {
books: books,
// title: loans.Book.title,
// author: loans.Book.author,
// genre: loans.Book.genre,
// first_published: loans.Book.first_published,
// patronFirstName: loans.Patron.first_name,
// patronLastName: loans.Patron.last_name,
// loanedOn: loans.loaned_on,
// return_by: loans.return_by,
// returned_on: loans.returned_on
});
});
});
を眺めです:
は、ここで詳細ページエンドポイントの
extends ./layout
block content
body
each book in books
h1 Book: #{book.title}
form
p
label(for='title') Title
input#title(type='text', value=book.title)
p
label(for='author') Author
input#author(type='text', value=book.author)
p
label(for='genre') Genre
input#genre(type='text', value=book.genre)
p
label(for='first_published') First Published
input#first_published(type='text',
value=book.first_published)
p
input(type='submit', value='Update')
h2 Loan History
table
thead
tr
th Book
th Patron
th Loaned on
th Return by
th Returned on
th Action
tbody
tr
td
a(href=`/books/book_detail`)= book.title
td
//- a(href=`/patrons/patron_detail`)=book.Loan.first_name + ' ' + book.Loan.last_name
if book.Loan
a(href='patron_detail.html')
td= book.Loan.loaned_on
td= book.Loan.return_by
td= book.Loan.returned_on
td
a.button(href='return_book.html') Return Book
なぜあなたはまず最初にその本を全部集めていますか?あなたはその「id」によって1冊の本だけを掴んでいない理由はありますか? –
私は@AndrewMyersに同意しますが、「すべての本を手に入れて1つしかレンダリングしない」場合は、IDをpug条件付きで照合する必要があります(https://pugjs.org/language)。 /conditionals.html –
@AndrewMyers私はSequelize ORMをこのプロジェクトに使用していますが、私が知っている限り、その関数内のすべての書籍を照会する必要がありますが、間違っている可能性があります。選択した書籍の本の詳細にユーザーをリダイレクトすることはできませんか?しかし、私の見解はどのようにそれを知っていますか – wellowlbe