[英]Express/mongoose returns empty array when trying to get request
我正在尝试从数据库中获取书籍列表。 我在 mongoose 指南针上插入了数据。 我只得到一个空数组。
//Model File
import mongoose from "mongoose";
const bookSchema = mongoose.Schema({
title: {
type: String,
required: true,
},
description: {
type: String,
required: true,
},
releasedDate: {
type: String,
required: true,
},
});
const Book = mongoose.model("Book", bookSchema);
export default Book;
//Routes file
import express from "express";
import Book from "./bookModel.js";
const router = express.Router();
router.get("/", async (req, res) => {
const books = await Book.find({});
res.status(200).json(books);
});
确保您在 db 中有书籍数据。如果它在那里,请尝试将 then 和 catch 块添加到您的代码中。 然后你就会知道错误是什么。
await Book.find({})
.then((data) =>{
res.send(data)
})
.catch((err) =>{
res.send(err)
})
当您创建 model 时,通过new Schema
更改mongoose.model
并声明_id
属性,例如:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
const Book = new Schema({
_id: { type: Schema.ObjectId, auto: true },
// other attributes
})
更新:如果它似乎不起作用,请尝试将_id
更改为其他名称,例如bookID
或id
,这可能是错误,请阅读https://github.com/Automattic/mongoose/issues/1285
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.