试图从mongodb中显示玉器中的数据

时间:2016-08-13 03:57:01

标签: node.js mongodb express mongoose pug

尝试将mongoose模式中的数据显示为jade temaplate,但无论我尝试什么,它都能正常工作,所以请帮助我并感谢。

首先是我的书架构模型/ 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}

1 个答案:

答案 0 :(得分:1)

您的代码中需要多个错误/修改。

  1. 发现时,最好先将{}作为第一个输入。

  2. 在呈现图书模板时,您使用books变量来显示图书清单,但您不是从路线发送图书。您需要在books中发送res.render

  3. 试试这个:

    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.
        })
      })