尝试将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}
答案 0 :(得分:1)
您的代码中需要多个错误/修改。
发现时,最好先将{}
作为第一个输入。
在呈现图书模板时,您使用books
变量来显示图书清单,但您不是从路线发送图书。您需要在books
中发送res.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.
})
})