2016-08-13 5 views
0

몽구스 스키마에서 옥 공개 텍스트로 데이터를 표시하려하지만 시도 할 때 작업량이 너무 많아서 고맙습니다. 여기에 첫 번째mongodb에서 옥으로 데이터를 표시하려고 시도합니다

내 책 스키마 모델/book.js

const mongoose = require('mongoose') 
const schema = mongoose.Schema 

const BookSchema = new schema({ 
    title: String, 
    author: String, 
    isbn: Number, 
    date: { type: Date, default: Date.now}, 
    description: String 
}) 


module.exports = mongoose.model('Book', BookSchema) 

이며, 여기에 책 모델

const Book = require('../models/book') 
const express = require('express') 
router = express.Router() 


router.route('/books') 
    // Create a book 
    .post((req, res) => { 
    const book = new Book() 
    book.name = req.body.name 

    book.save((err) => { 
     if (err) 
     res.send(err) 

     console.log('Book created! ') 
    }) 
    }) 

    //get all books 
    .get((req, res) => { 
    Book.find((err, books) => { 
     if (err) 
     res.send(err) 

     res.render('books', {title: 'books list'}) 
    }) 
    }) 




module.exports = router 

여기 마침내 내 컨트롤러 나의 옥 템플릿입니다

extends layout 

block content 
    if books 
    each book in books 
     h1 #{book.title} 
+0

, 당신은 당신의 템플릿에서 사용할 수에 대한 귀하의'res.render' 전화에'books'을 보내야합니다. 나머지는 괜찮습니다. – alizahid

답변

0

코드에 여러 가지 실수/수정이 필요합니다.

  1. 발견하는 동안, {}을 첫 번째 입력으로 사용하는 것이 좋습니다.

  2. 북 템플릿을 렌더링 할 때 books 변수를 사용하여 책 목록을 표시하지만 경로에서 보내지는 않습니다. booksres.render에 보내야합니다.

이 시도 : 라비 아래 지적

router.route('/books') 
    // Create a book 
    .post((req, res) => { 
    const book = new Book() 
    book.name = req.body.name 

    book.save((err) => { 
     res.send(err) 

     console.log('Book created! ') 
    }) 
    }) 

    //get all books 
    .get((req, res) => { 
    Book.find({},(err, books) => { 
     if (err) 
     res.send(err) 

     res.render('books', {title: 'books list' , books : books})//need to send the books variable to the template. 
    }) 
    }) 
+1

화살표 기능을 올바르게 사용하고 있습니다. 'function' 키워드를 지정하면 화살표가 필요 없습니다. – alizahid

+0

오케이, 나는 내 대답을 편집 할 것입니다. 나는 화살을 보지 못했다. –

관련 문제