在我的 NextJS 页面中导入猫鼬模式

编程入门 行业动态 更新时间:2024-10-03 14:20:17

在我的 NextJS 页面中导入猫鼬<a href=https://www.elefans.com/category/jswz/34/1771241.html style=模式"/>

在我的 NextJS 页面中导入猫鼬模式

我对 NextJS 特别陌生,我想知道是否可以就我遇到的问题寻求一些帮助。

我定义了 2 个 Mongoose 模式,并且在我的页面中使用一个模式已经有一段时间了,没有任何问题。但是,一旦我导入第二个模式,我的页面就会拒绝呈现并出现附加错误。

我导入哪个模式并不重要,但是一旦导入第二个模式,我就会得到与第二个模式相同的错误。

这是每个模式:

User.js

import mongoose from "mongoose";

const UserSchema = new mongoose.Schema({}, { strict: false });

export default mongoose.models.User || mongoose.model("User", UserSchema);

Album.js

import mongoose from "mongoose";

const AlbumSchema = new mongoose.Schema({}, { strict: false });

export default mongoose.models.Album || mongoose.model("Album", AlbumSchema);

这是发生错误的页面。

albums.js

import Layout from "@/Components/Dashboard/DashLayout";

import AlbumCard from "@/Components/Dashboard/Albums/AlbumCard";
import AlbumSchema from "@/models/Album";
import dbConnect from "@/utils/dcConnect";

export default function DashAlbums({ albums }) {
    return (
        // Page content removed for import
    );
}

// Require authentication
DashAlbums.auth = true;

export async function getServerSideProps(context) {
    dbConnect();
    const albums = await AlbumSchema.find()
    const data = albums.map(album => {
        return { _id: album._id, name: album.name, cover: album.cover }
    });

    return { props: { albums: JSON.parse(JSON.stringify(data)) } }
}

有人能帮我弄清楚我哪里出错了吗?

我试过只导出模型,但 NextJS 不喜欢那样,我没有足够的知识来找出我哪里出错了。

回答如下:

我认为问题是您无法将 Mongoose 模式代码导入客户端组件。

你必须写一个 API 路由,把这个逻辑写在 api handler 中

dbConnect();
const albums = await AlbumSchema.find()
const data = albums.map(album => {
    return { _id: album._id, name: album.name, cover: album.cover }
});

然后在

getServerSideProps
中,您向该 api 路径发出请求并在
props
对象中返回正确的结果

更多推荐

在我的 NextJS 页面中导入猫鼬模式

本文发布于:2024-05-30 20:57:21,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1770915.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:模式   页面   NextJS

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!