gpt4 book ai didi

javascript - EJS 和 Mongoosse 中的 .forEach()

转载 作者:行者123 更新时间:2023-11-30 23:58:06 24 4
gpt4 key购买 nike

我试图在 ejs 文件中显示存储在 mongo 数据库中的每个作者。我的想法是使用 Model.find({}) 迭代每个作者

authorController.js

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


router.get('/', async (req, res) => {
try{
const authors = Author.find({})
res.render('authors/index', {authors: authors})
} catch(error) {
res.redirect('/')
}
})

索引.ejs

<h1>Search authors</h1>

<form action="/authors" method="GET">
<label>Name</label>
<input type="text" name="name">
<button type="submit">Search</button>
</form>

<% authors.forEach(author => { %>
<div class="author"><%= author.name %></div>
<% }) %>

作者模型

const mongoose = require('../database')

const AuthorSchema = mongoose.Schema({
name: {
type: String,
required: true,
}
})

module.exports = mongoose.model('Author', AuthorSchema)

它引发错误:authors.forEach 不是函数

我读了一点,我认为发生这种情况是因为我无法使用 forEach() 迭代对象。我怎样才能做到这一点?

最佳答案

在您的代码(在异步函数内)中,以下行:

const authors = Author.find({});

应该是这样的:

const authors = await Author.find({});

关于javascript - EJS 和 Mongoosse 中的 .forEach(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60920532/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com